程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(3)

mybatis笔记01-mysql数据查询

发布于2020-11-19 20:12     阅读(830)     评论(0)     点赞(15)     收藏(3)


最近开始学习ssm框架,用mybatis实现最简单的数据查询,数据库使用mysql数据库。mysql数据库建议使用5.1.x或者5.5.x版本,可自行下载。

1.数据准备

安装mysql数据库后,建立测试表user,自行插入几条测试数据

  1. DROP TABLE IF EXISTS `user`;
  2. CREATE TABLE `user` (
  3. `id` int(11) NOT NULL auto_increment,
  4. `username` varchar(32) NOT NULL COMMENT '用户名称',
  5. `birthday` datetime default NULL COMMENT '生日',
  6. `sex` char(1) default NULL COMMENT '性别',
  7. `address` varchar(256) default NULL COMMENT '地址',
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.工程结构

pom.xml中添加如下依赖:包括mybatis,mysql,日志,单元测试

  1. <packaging>jar</packaging>
  2. <dependencies>
  3. <dependency>
  4. <groupId>org.mybatis</groupId>
  5. <artifactId>mybatis</artifactId>
  6. <version>3.5.6</version>
  7. </dependency>
  8. <dependency>
  9. <groupId>mysql</groupId>
  10. <artifactId>mysql-connector-java</artifactId>
  11. <version>5.1.49</version>
  12. </dependency>
  13. <dependency>
  14. <groupId>log4j</groupId>
  15. <artifactId>log4j</artifactId>
  16. <version>1.2.12</version>
  17. </dependency>
  18. <dependency>
  19. <groupId>junit</groupId>
  20. <artifactId>junit</artifactId>
  21. <version>4.10</version>
  22. </dependency>
  23. </dependencies>

log4j.properties可直接放到resources目录下,指定下本地目录

  1. # Set root category priority to INFO and its only appender to CONSOLE.
  2. #log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
  3. log4j.rootCategory=debug, CONSOLE, LOGFILE
  4. # Set the enterprise logger category to FATAL and its only appender to CONSOLE.
  5. log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
  6. # CONSOLE is set to be a ConsoleAppender using a PatternLayout.
  7. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
  8. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
  9. log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
  10. # LOGFILE is set to be a File appender using a PatternLayout.
  11. log4j.appender.LOGFILE=org.apache.log4j.FileAppender
  12. log4j.appender.LOGFILE.File=C:\\mybatis_day01\\first\\log4j.log
  13. log4j.appender.LOGFILE.Append=true
  14. log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
  15. log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

User为实体类,与我们建的User表对应

  1. package com.tjchy.domain;
  2. import java.io.Serializable;
  3. import java.util.Date;
  4. public class User implements Serializable {
  5. private Integer id;
  6. private String username;
  7. private Date birthday;
  8. private String sex;
  9. private String address;
  10. public Integer getId() {
  11. return id;
  12. }
  13. public void setId(Integer id) {
  14. this.id = id;
  15. }
  16. public String getUsername() {
  17. return username;
  18. }
  19. public void setUsername(String username) {
  20. this.username = username;
  21. }
  22. public Date getBirthday() {
  23. return birthday;
  24. }
  25. public void setBirthday(Date birthday) {
  26. this.birthday = birthday;
  27. }
  28. public String getSex() {
  29. return sex;
  30. }
  31. public void setSex(String sex) {
  32. this.sex = sex;
  33. }
  34. public String getAddress() {
  35. return address;
  36. }
  37. public void setAddress(String address) {
  38. this.address = address;
  39. }
  40. @Override
  41. public String toString() {
  42. return "User{" +
  43. "id=" + id +
  44. ", username='" + username + '\'' +
  45. ", birthday=" + birthday +
  46. ", sex='" + sex + '\'' +
  47. ", address='" + address + '\'' +
  48. '}';
  49. }

 IUserDao为持久层接口,如下

  1. package com.tjchy.dao;
  2. import com.tjchy.domain.User;
  3. import java.util.List;
  4. /**
  5. * 持久层接口
  6. */
  7. public interface IUserDao {
  8. /**
  9. * 查询所有用户接口
  10. */
  11. List<User> findAll();
  12. }

IUserDao.xml为对象关系映射文件,在resources目录下,注意需与IUserDao.java文件的目录结构相同,都为com.tjchy.dao

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.tjchy.dao.IUserDao">
  6. <!--配置查询所有-->
  7. <select id="findAll" resultType="com.tjchy.domain.User">
  8. select * from user
  9. </select>
  10. </mapper>

SqlMapConfig.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <!--mybatis主配置文件-->
  6. <configuration>
  7. <!--配置环境-->
  8. <environments default="mysql">
  9. <!--配置mysql环境-->
  10. <environment id="mysql">
  11. <!-- 配置事务的类型-->
  12. <transactionManager type="JDBC"></transactionManager>
  13. <!-- 配置数据源(连接池) -->
  14. <dataSource type="POOLED">
  15. <property name="driver" value="com.mysql.jdbc.Driver"/>
  16. <property name="url" value="jdbc:mysql://localhost:3306/xxxx"/>
  17. <property name="username" value="xxxx"/>
  18. <property name="password" value="xxxx"/>
  19. </dataSource>
  20. </environment>
  21. </environments>
  22. <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
  23. <mappers>
  24. <mapper resource="com/tjchy/dao/IUserDao.xml"/>
  25. </mappers>
  26. </configuration>

 建立测试类,TestMain

  1. package com.tjchy.test;
  2. import com.tjchy.dao.IUserDao;
  3. import com.tjchy.domain.User;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8. import java.io.InputStream;
  9. import java.util.List;
  10. public class TestMain {
  11. public static void main(String[] args) throws Exception {
  12. //1.读取配置文件
  13. InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
  14. //2.创建SqlSessionFactory工厂
  15. SqlSessionFactoryBuilder builder;
  16. builder = new SqlSessionFactoryBuilder();
  17. SqlSessionFactory sessionFactory = builder.build(in);
  18. //3.使用工厂创建Sqlsession对象
  19. SqlSession session=sessionFactory.openSession();
  20. //4.使用session创建dao接口的代理对象
  21. IUserDao userDao = session.getMapper(IUserDao.class);
  22. //5.执行方法
  23. List<User> users = userDao.findAll();
  24. for(User user : users)
  25. {
  26. System.out.println(user);
  27. }
  28. //6.释放资源
  29. session.close();
  30. in.close();
  31. }
  32. }

 

原文链接:https://blog.csdn.net/gis_zhouda/article/details/109775724



所属网站分类: 技术文章 > 博客

作者:javagogogo

链接:http://www.javaheidong.com/blog/article/858/9b9adb832fe4ba747b3f/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

15 0
收藏该文
已收藏

评论内容:(最多支持255个字符)