海南省城乡建设厅网站,南通网站开发价格,北京工商局网站怎么做增资,杭州seo推广排名稳定文章目录一#xff0c;创建数据库与表#xff08;一#xff09;在Navicat里创建MySQL数据库testdb#xff08;二#xff09;创建用户表 - t_user#xff08;三#xff09;在用户表里插入3条记录二#xff0c;案例演示MyBatis基本使用#xff08;一#xff09;创建Mav…
文章目录一创建数据库与表一在Navicat里创建MySQL数据库testdb二创建用户表 - t_user三在用户表里插入3条记录二案例演示MyBatis基本使用一创建Maven项目 - MyBatisDemo二在pom文件里添加相应的依赖三创建与用户表对应的用户实体类 - User四创建用户实体关系映射配置文件五创建MyBatis配置文件六创建日志属性文件七创建测试类测试用户操作1、创建测试类 - TestUserOperation2、运行测试方法 - testFindById()3、运行测试方法 - testFindAll()三采用接口方式使用MyBatis一创建用户映射器接口二创建测试类测试用户映射器接口1、创建测试类 - TestUserMapper2、运行测试方法 - testFindById()3、运行测试方法 - testFindAll()四采用配置类与注解方式使用MyBatis一查看官网上给出的资料二创建MyBatis配置类三创建新的用户映射器接口测试类四修改用户映射器接口五运行新的用户映射器接口测试类一创建数据库与表 一在Navicat里创建MySQL数据库testdb 二创建用户表 - t_user
CREATE TABLE t_user (id int(11) NOT NULL AUTO_INCREMENT,name varchar(50) DEFAULT NULL,age int(11) DEFAULT NULL,address varchar(255) DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB AUTO_INCREMENT4 DEFAULT CHARSETutf8;执行SQL语句来创建用户表 查看用户表结构
三在用户表里插入3条记录
INSERT INTO t_user VALUES (1, 李洪刚, 20, 江阳区嘉裕花园3栋四楼15#);
INSERT INTO t_user VALUES (2, 王云华, 30, 纳溪区大渡镇红鱼村三大队);
INSERT INTO t_user VALUES (3, 郑小翠, 21, 江阳区老窖花园2栋五楼15号);执行SQL语句插入记录 查看用户表记录 采用Maven构建工具不用你手动去下载jar包所有jar包仓库统一管理只要配置一下pom文件run-install…依赖的包就会下载下来省去你管理依赖的时间。pom: Project Object Model 项目对象模型 二案例演示MyBatis基本使用
一创建Maven项目 - MyBatisDemo 二在pom文件里添加相应的依赖
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdnet.army.mybatis/groupIdartifactIdMyBatisDemo/artifactIdversion1.0-SNAPSHOT/versiondependenciesdependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.13/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.49/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/version/dependencydependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependency/dependencies
/project三创建与用户表对应的用户实体类 - User
1.新建bean包 2.在bean包下创建实体类User 3.添加如下代码
package net.army.mybatis.bean;/*** 作者梁辰兴* 日期2023/3/29* 功能用户实体类*/
public class User {private int id;private String name;private int age;private String address;public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getAddress() {return address;}public void setAddress(String address) {this.address address;}Overridepublic String toString() {return User{ id id , name name \ , age age , address address \ };}
}四创建用户实体关系映射配置文件
在resources目录里创建mapper子目录然后在里面创建实体关系映射配置文件 - UserMapper.xml
添加如下代码
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacenet.army.mybatis.mapper.UserMapperselect idfindById parameterTypeint resultTypeUserSELECT * FROM t_user WHERE id #{id};/selectselect idfindAll resultTypeUserSELECT * FROM t_user;/select
/mapper注意传入参数一般用#查询属性值一般用$ 五创建MyBatis配置文件
在resources目录里创建mybatis-config.xml
添加如下代码
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtdconfiguration!--配置实体类别名--typeAliasestypeAlias typenet.army.mybatis.bean.User aliasUser//typeAliases!--配置数据库环境--environments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/testdb?useSSLfalse/property nameusername valueroot/property namepassword valueroot//dataSource/environment/environments!--配置实体关系映射器文件--mappersmapper resourcemapper/UserMapper.xml//mappers
/configuration简要说明
mybatis-config.xml 是 MyBatis 用来建立 sessionFactory 用的里面主要包含了数据库连接相关内容还有 Java 类所对应的别名比如typeAlias type “net.hw.mybatis.bean.User” alias “User” /这个别名非常重要在具体类的映射中比如UserMapper.xml 中 resultType 就是对应这里的User。要保持一致。mybatis-config.xml 里面 的mapper resource“mapper/UserMapper.xml”/是包含要映射的类的实体关系映射配置文件。在UserMapper.xml 文件里面主要是定义各种SQL 语句以及这些语句的参数以及要返回的类型等。
六创建日志属性文件
在resources目录里创建log4j.properties文件 内容如下
log4j.rootLoggerWARN, stdout, logfile
log4j.appender.stdoutorg.apache.log4j.ConsoleAppender
log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern%d %p [%c] - %m%n
log4j.appender.logfileorg.apache.log4j.FileAppender
log4j.appender.logfile.Filetarget/mybatis.log
log4j.appender.logfile.layoutorg.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern%d %p [%c] - %m%n七创建测试类测试用户操作
1、创建测试类 - TestUserOperation
在test/java目录里创建net.army.mybatis.bean包然后在包里创建测试类 - TestUserOperation 添加如下代码
package net.army.mybatis.bean;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.io.IOException;
import java.io.Reader;
import java.util.List;/*** 作者梁辰兴* 日期2023/4/4* 功能测试用户操作*/
public class TestUserOperation {private SqlSession sqlSession; // SQL会话Beforepublic void init() {try {// 读取MyBatis配置文件Reader reader Resources.getResourceAsReader(mybatis-config.xml);// 基于MyBatis配置文件构建SQL会话工厂SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader);// 利用SQL会话工厂获取SQL会话sqlSession factory.openSession();// 提示用户SQL会话创建成功System.out.println(SQL会话创建成功~);} catch (IOException e) {e.printStackTrace();}}Test // 测试按编号查询用户记录public void testFindById() {int id 10;// 利用SQL会话执行SQL语句进行查询返回查询结果User user sqlSession.selectOne(net.army.mybatis.mapper.UserMapper.findById, id);// 判断查询是否成功if (user ! null) {System.out.println(user);} else {System.out.println(编号为[ id ]的用户未找到~);}}Test // 测试查询全部用户记录public void testFindAll() {// 利用SQL会话执行SQL语句进行查询返回查询结果ListUser users sqlSession.selectList(net.army.mybatis.mapper.UserMapper.findAll);// 输出全部用户信息采用了列表的遍历算子与Lambda表达式users.forEach(user - System.out.println(user));}Afterpublic void destroy() {// 关闭SQL会话sqlSession.close();// 提示用户SQL会话关闭System.out.println(SQL会话已经关闭~);}
}2、运行测试方法 - testFindById()
运行测试方法 - testFindById()
查看结果 修改testFindById()代码再次运行
查看结果
3、运行测试方法 - testFindAll()
运行测试方法 - testFindAll()
查看结果
三采用接口方式使用MyBatis
上文我们采用 SqlSession 实例来直接执行已映射的SQL语句sqlSession.selectOne( net.army.mybatis.mapper.UserMapper.findById, id); 其实还有更好更简洁的方式使用合理描述参数和SQL语句返回值的接口比如 UserMapper.class 这样代码更简单不容易发生字符串文字和转换的错误。
一创建用户映射器接口
创建net.army.mybatis.mapper包然后在包里创建用户映射器接口 - UserMapper
输入以下代码
package net.army.mybatis.mapper;import net.army.mybatis.bean.User;import java.util.List;/*** 作者梁辰兴* 日期2023/4/4* 功能用户映射器接口
*/public interface UserMapper {User findById(int id);ListUser findAll();
}注意UserMapper接口的完整路路径包名接口名必须是元素的namespace属性值 net.huawei.mybatis.mapper.UserMapper并且里面定义的方法名必须与UserMapper.xml里定义的SQL语句的id值保持一致比如 findById、findAll。 二创建测试类测试用户映射器接口
1、创建测试类 - TestUserMapper
在test/java里创建net.huawei.mybatis.mapper包然后在包里创建测试类 - TestUserMapper 输入以下代码
package net.army.mybatis.mapper;import net.army.mybatis.bean.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.io.IOException;
import java.io.Reader;
import java.util.List;/*** 作者梁辰兴* 日期2023/4/4* 功能测试用户映射器接口*/public class TestUserMapper {private SqlSession sqlSession; // SQL会话private UserMapper userMapper; // 用户映射器Beforepublic void init() {try {// 读取MyBatis配置文件作为字符输入流Reader reader Resources.getResourceAsReader(mybatis-config.xml);// 基于MyBatis配置文件构建SQL会话工厂SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader);// 利用SQL会话工厂获取SQL会话sqlSession factory.openSession();// 利用SQL会话获取用户映射器对象userMapper sqlSession.getMapper(UserMapper.class);// 提示用户SQL会话对象创建成功System.out.println(sqlSession对象已创建。);} catch (IOException e) {e.printStackTrace();}}Testpublic void testFindById() {int id 1;User user userMapper.findById(id);if (user ! null) {System.out.println(user);} else {System.out.println(编号为[ id ]的用户未找到。);}}Testpublic void testFindAll() {ListUser users userMapper.findAll();users.forEach(user - System.out.println(user));}Afterpublic void destroy() {// 关闭SQL会话sqlSession.close();// 提示用户SQL会话对象关闭System.out.println(sqlSession对象已关闭。);}
}2、运行测试方法 - testFindById()
运行测试方法 - testFindById()
3、运行测试方法 - testFindAll()
运行测试方法 - testFindAll() 四采用配置类与注解方式使用MyBatis
一查看官网上给出的资料
MyBatis官网 - https://mybatis.org/mybatis-3/getting-started.html 二创建MyBatis配置类
在net.army.mybatis包里创建config子包然后在子包里创建MyBatisConfig类 输入如下代码
package net.army.mybatis.config;import org.apache.ibatis.datasource.pooled.PooledDataSource;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;import javax.sql.DataSource;/*** 作者梁辰兴* 日期2023/4/4* 功能MyBatis配置类*/
public class MyBatisConfig {// 获取MyBatis配置对象public static Configuration getConfiguration() {// 声明配置对象Configuration configuration null;// 创建JDBC事务管理器TransactionFactory transactionFactory new JdbcTransactionFactory();// 创建数据源DataSource dataSource new PooledDataSource(com.mysql.jdbc.Driver,jdbc:mysql://localhost.3306/testdb?useSSlfalse,root,root);// 创建数据库环境Environment environment new Environment(development, transactionFactory, dataSource);// 基于数据库环境创建配置对象configuration new Configuration(environment);// 返回配置对象return configuration;}
}三创建新的用户映射器接口测试类
在test/java的net.huawei.mybatis.mapper包里创建TestUserMapperNew类
输入如下代码
package net.army.mybatis.mapper;import net.army.mybatis.bean.User;
import net.army.mybatis.config.MyBatisConfig;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.util.List;/*** 作者梁辰兴* 日期2023/4/18* 功能测试用户映射器接口*/
public class TestUserMapperNew {private SqlSession sqlSession; // SQL会话private UserMapper userMapper; // 用户映射器Beforepublic void init() {// 获取MyBatis配置对象Configuration configuration MyBatisConfig.getConfiguration();// 添加用户映射器接口configuration.addMapper(UserMapper.class);// 基于配置对象构建SQL会话工厂SqlSessionFactory factory new SqlSessionFactoryBuilder().build(configuration);// 利用SQL会话工厂获取SQL会话sqlSession factory.openSession();// 利用SQL会话获取用户映射器对象userMapper sqlSession.getMapper(UserMapper.class);// 提示用户SQL会话创建成功System.out.println(SQL会话创建成功~);}Test // 测试按编号查询用户记录public void testFindById() {int id 1;// 调用用户映射器的查询方法User user userMapper.findById(id);// 判断查询是否成功if (user ! null) {System.out.println(user);} else {System.out.println(编号为[ id ]的用户未找到~);}}Test // 测试查询全部用户记录public void testFindAll() {// 调用用户映射器的查询方法ListUser users userMapper.findAll();// 输出全部用户信息采用了列表的遍历算子与Lambda表达式users.forEach(user - System.out.println(user));}Afterpublic void destroy() {// 关闭SQL会话sqlSession.close();// 提示用户SQL会话关闭System.out.println(SQL会话已经关闭~);}
}四修改用户映射器接口
用户映射器接口 - UserMapper
在用户映射器接口的抽象方法上添加注解绑定SQL语句
package net.army.mybatis.mapper;import net.army.mybatis.bean.User;
import org.apache.ibatis.annotations.Select;import java.util.List;/*** 作者梁辰兴* 日期2023/4/4* 功能用户映射器接口
*/public interface UserMapper {Select(select * from t_user where id #{id})User findById(int id); // 按编号查询记录 Select(select * from t_user)ListUser findAll(); // 查询所有记录
}五运行新的用户映射器接口测试类
运行测试方法testFindById()查看结果
运行测试方法testFindAll()查看结果