【目录】

【MyBatis】

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。

MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。

MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。

SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。

MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。

MyBatis 最强大的特性之一就是它的动态语句功能。如果您以前有使用JDBC或者类似框架的经历,您就会明白把SQL语句条件连接在一起是多么的痛苦,

要确保不能忘记空格或者不要在columns列后面省略一个逗号等。动态语句能够完全解决掉这些痛苦。尽管与动态SQL一起工作不是在开一个party,但是MyBatis确实能通过在任何映射SQL语句中

【步骤】

①获取MyBatis加包(在😁项目基础上使用MyBatis)

mybatis 链接 MySQL 密码_spring

②在pop.xml中添加以下代码,管理Mybatis加包

1

2

3 org.mybatis

4 mybatis

5 3.5.0

6

🌂在Java Resources中创建conf.xml

mybatis 链接 MySQL 密码_mybatis配置mysql数据库_02

④配置数据库连接信息

1 <?xml version="1.0" encoding="UTF-8"?>

😭查询数据库中S_User表数据----建立对应的实体类

mybatis 链接 MySQL 密码_User_03

mybatis 链接 MySQL 密码_spring_04

1 packagecom.springdemo.model;2
3 public classUser {4
5 publicUser(String userId, String userName, String userPwd, String userPower) {6 super();7 this.userId =userId;8 this.userName =userName;9 this.userPwd =userPwd;10 this.userPower =userPower;11 }12
13 publicUser() {14 super();15 }16
17 private int_key;18 privateString userId;19 privateString userName;20 privateString userPwd;21 privateString userPower;22
23 public intget_key() {24 return_key;25 }26
27 public void set_key(int_key) {28 this._key =_key;29 }30
31 publicString getUserId() {32 returnuserId;33 }34
35 public voidsetUserId(String userId) {36 this.userId =userId;37 }38
39 publicString getUserName() {40 returnuserName;41 }42
43 public voidsetUserName(String userName) {44 this.userName =userName;45 }46
47 publicString getUserPwd() {48 returnuserPwd;49 }50
51 public voidsetUserPwd(String userPwd) {52 this.userPwd =userPwd;53 }54
55 publicString getUserPower() {56 returnuserPower;57 }58
59 public voidsetUserPower(String userPower) {60 this.userPower =userPower;61 }62
63 @Override64 publicString toString() {65 return "User [key=" + _key + ",id="+userId+" name=" + userName + ", power=" + userPower + "]";66 }67 }

注:创建get ,set,构造函数快捷键(右键--> source )

mybatis 链接 MySQL 密码_mybatis 链接 MySQL 密码_05

⑥创建User表Sql查询映射文件userMapper.xml

mybatis 链接 MySQL 密码_mybatis 链接 MySQL 密码_06

1 <?xml version="1.0" encoding="UTF-8"?>
 
15 resultType="com.springdemo.model.User"> 
16 select * from S_USER where _key=#{id}17 
18 
⑦在conf.xml文件中注册userMapper.(标签内)
 
⑧使用Test.java 文件添加测试
1 packagecom.springdemo.impl;2
3 importjava.io.IOException;4 importjava.io.InputStream;5 importjava.io.Reader;6 importjava.util.List;7
8 importcom.springdemo.model.User;9 importcom.springdemo.tools.DBTools;10
11 importorg.apache.ibatis.io.Resources;12 importorg.apache.ibatis.session.SqlSession;13 importorg.apache.ibatis.session.SqlSessionFactory;14 importorg.apache.ibatis.session.SqlSessionFactoryBuilder;15
16 public classTest {17
18 public static void main(String[] args) throwsIOException {19
20 //mybatis的配置文件
21 String resource = "conf.xml";22 //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
23
24 InputStream is =Resources.getResourceAsStream(resource);25 //构建sqlSession的工厂
26
27 SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(is);28 //使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)29 //Reader reader = Resources.getResourceAsReader(resource);30 //构建sqlSession的工厂31 //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);32 //创建能执行映射文件中sql的sqlSession
33 SqlSession session =sessionFactory.openSession();34 /**
35 * 映射sql的标识字符串,36 * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,37 * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL38 */
39
40 /*根据——key查找*/
41 String statement = "com.springdemo.mapping.userMapper.getUser";42 //映射sql的标识字符串,getUser与映射文件中配置select标签id一致43 //执行查询返回一个唯一user对象的sql
44 User user = session.selectOne(statement,2);45 System.out.println(user);46
47 }

⑨执行结果

mybatis 链接 MySQL 密码_Power_07

【增删改查】

修改userMapper.xml统一管理返回类型

resultMap设置对应的实体类

①查询所有user记录
🍕userMapper.xml配置
select * from s_user
resultMap设置返回的ReusltMap
🍔测试java代码
1 String stateselect = "com.springdemo.mapping.userMapper.selectUser";2 List userList =session.selectList(stateselect);3 for(int i=0;i
②删除指定user记录
🍟userMapper.xml配置
delete from S_user where _key=#{_key}
🌭测试java代码
1 String statementdl = "com.springdemo.mapping.userMapper.deleteUser";2 try{3 session.delete(statementdl,4);4 session.commit();5 } catch(Exception e) {6 e.printStackTrace();7 session.rollback();8 }
🌂更新user表记录
🍿userMapper.xml配置
update S_user set userPwd=#{userName},userPwd=#{userPwd},userPower=#{userPower} where _key=#{_key}
🥓测试java代码
1 String statementup = "com.springdemo.mapping.userMapper.updateUser";2 User userup = new User("wqyx","wqyx", "hhh","超级");3 userup.set_key(2);4 try{5 session.update(statementup, userup);6 session.commit();7 } catch(Exception e) {8 e.printStackTrace();9 session.rollback();10 }
④新增user表记录
🍿userMapper.xml配置
insert into S_USER (userId,userName,userPwd,userPower) values (#{userId},#{userName},#{userPwd},#{userPower})
🥓测试java代码
1 String statementIn = "com.springdemo.mapping.userMapper.insertUser";2 User userin = new User("wll","wll", "123456","7000");3 try{4 session.insert(statementIn,userin);5 session.commit();6 } catch(Exception e) {7 e.printStackTrace();8 session.rollback();9 }