MyBatis创建数据库与表

2022-08-30 08:16:26

一、创建数据库与表

在这里插入图片描述
在这里插入图片描述

1、在Navicat里创建MySQL数据库testdb

2、创建用户表 - t_user

CREATETABLE`t_user`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(50)DEFAULTNULL,`age`int(11)DEFAULTNULL,`address`varchar(255)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=4DEFAULTCHARSET=utf8;

3、在用户表里插入3条记录

INSERTINTO`t_user`VALUES('1','李洪刚','20','江阳区嘉裕花园3栋四楼15#');INSERTINTO`t_user`VALUES('2','王云华','30','纳溪区大渡镇红鱼村三大队');INSERTINTO`t_user`VALUES('3','郑小翠','21','江阳区老窖花园2栋五楼15号');

二,创建Maven项目 - MyBatisDemo

1.在pom文件里添加相应的依赖

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
         http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>net.hw.mybatis</groupId><artifactId>MyBatisDemo</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.40</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency></dependencies></project>

2.添加了新的依赖,单击一下红圈指定的刷新按钮

在这里插入图片描述

三,创建与用户表对应的用户实体类 - User

在这里插入图片描述

publicclassUser{privateint id;private String name;privateint age;private String address;publicintgetId(){return id;}publicvoidsetId(int id){this.id= id;}public StringgetName(){return name;}publicvoidsetName(String name){this.name= name;}publicintgetAge(){return age;}publicvoidsetAge(int age){this.age= age;}public StringgetAddress(){return address;}publicvoidsetAddress(String address){this.address= address;}@Overridepublic StringtoString(){return"User{"+"id="+ id+", name='"+ name+'\''+", age="+ age+", address='"+ address+'\''+'}';}}

四,创建用户实体关系映射配置文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper
        PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="net.zy.mybatis.mapper.UserMapper"><select id="findById" parameterType="int" resultType="User">
        SELECT* FROM t_user WHERE id= #{id};</select><select id="findAll" resultType="User">
        SELECT* FROM t_user;</select></mapper>

五,创建MyBatis配置文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration
        PUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--配置实体类别名--><typeAliases><typeAlias type="net.zy.mybatis.bean.User" alias="User"/></typeAliases><!--配置数据库环境--><environmentsdefault="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/testdb?useSSL=false"/><property name="username" value="root"/><property name="password" value="p@ssw0rd"/></dataSource></environment></environments><!--配置实体关系映射器文件--><mappers><mapper resource="mapper/UserMapper.xml"/></mappers></configuration>

六,创建日志属性文件

在resources目录里创建log4j.properties文件

log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d%p[%c]-%m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/mybatis.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d%p[%c]-%m%n

在这里插入图片描述

七,创建测试类测试用户操作

1.创建测试类 - TestUserOperation

  • 在test/java目录里创建net.hw.mybatis.bean包,然后在包里创建测试类 - TestUserOperation
publicclassTestUserOperation{private SqlSession sqlSession;// SQL会话@Beforepublicvoidinit(){try{// 读取MyBatis配置文件
            Reader reader= Resources.getResourceAsReader("mybatis-config.xml");// 基于MyBatis配置文件构建SQL会话工厂
            SqlSessionFactory factory=newSqlSessionFactoryBuilder().build(reader);// 利用SQL会话工厂获取SQL会话
            sqlSession= factory.openSession();// 提示用户SQL会话创建成功
            System.out.println("sqlSession对象已创建。");}catch(IOException e){
            e.printStackTrace();}}@TestpublicvoidtestFindById(){int id=1;
        User user= sqlSession.selectOne("net.zy.mybatis.mapper.UserMapper.findById", id);if(user!= null){
            System.out.println(user);}else{
            System.out.println("编号为["+ id+"]的用户未找到。");}}@TestpublicvoidtestFindAll(){
        List<User> users= sqlSession.selectList("net.zy.mybatis.mapper.UserMapper.findAll");
        users.forEach(user-> System.out.println(user));}@Afterpublicvoiddestroy(){// 关闭SQL会话
        sqlSession.close();// 提示用户SQL会话对象关闭
        System.out.println("sqlSession对象已关闭。");}}

2.运行测试方法 - testFindById()

在这里插入图片描述

3.运行测试方法 - testFindAll()

在这里插入图片描述

八,采用接口方式使用MyBatis

(一)创建用户映射器接口

在这里插入图片描述

  • 注意:UserMapper接口的完整路路径(包名+接口名)必须是\元素的namespace属性值
    net.zy.mybatis.mapper.UserMapper,并且里面定义的方法名必须与UserMapper.xml里定义的SQL语句的id值保持一致,比如
    findById、findAll。

(二)创建测试类测试用户映射器接口

1、创建测试类 - TestUserMapper

publicclassTestUserMapper{private SqlSession sqlSession;// SQL会话private UserMapper userMapper;// 用户映射器@Beforepublicvoidinit(){try{// 读取MyBatis配置文件作为字符输入流
            Reader reader= Resources.getResourceAsReader("mybatis-config.xml");// 基于MyBatis配置文件构建SQL会话工厂
            SqlSessionFactory factory=newSqlSessionFactoryBuilder().build(reader);// 利用SQL会话工厂获取SQL会话
            sqlSession= factory.openSession();// 利用SQL会话获取用户映射器对象
            userMapper= sqlSession.getMapper(UserMapper.class);// 提示用户SQL会话对象创建成功
            System.out.println("sqlSession对象已创建。");}catch(IOException e){
            e.printStackTrace();}}@TestpublicvoidtestFindById(){int id=1;
        User user= userMapper.findById(id);if(user!= null){
            System.out.println(user);}else{
            System.out.println("编号为["+ id+"]的用户未找到。");}}@TestpublicvoidtestFindAll(){
        List<User> users= userMapper.findAll();
        users.forEach(user-> System.out.println(user));}@Afterpublicvoiddestroy(){// 关闭SQL会话
        sqlSession.close();// 提示用户SQL会话对象关闭
        System.out.println("sqlSession对象已关闭。");}}

2.运行测试方法 - testFindById()

在这里插入图片描述

3.运行测试方法 - testFindAll()

在这里插入图片描述

总结-容易出错的地方:

  • mybatis-config.xml的mysql密码要改

  • log4j.properties文件放错位置: 在resources目录里创建log4j.properties文件
    在这里插入图片描述

  • 包名的建立要对应:在测试类 TestUserOperation的测试方法里要对应包名

  • ideaIC版本要使用1.8版本

  • 作者:米粒ML
  • 原文链接:https://blog.csdn.net/weixin_46704325/article/details/114325965
    更新时间:2022-08-30 08:16:26