思路: 搭建环境–>导入Mybatis–>编写代码–>测试!
第一部分是整体搭建+查询数据库中所有用户
1.搭建环境
搭建数据库
CREATE DATABASE `mybatis`;
USE `mybatis`;
CREATE TABLE `user`(
`id` INT(20) NOT NULL PRIMARY KEY,
`name` VARCHAR(30) DEFAULT NULL,
`pwd` VARCHAR(30) DEFAULT NULL
)ENGINE=INNODB DEFAULT CHARSET=utf8
;
INSERT INTO `user`(`id`,`name`,`pwd`) VALUES
(1,'狂神','123456'),
(2,'张三','123456'),
(3,'李四','123890')
新建项目
新建一个普通的maven项目删除src目录导入maven依赖
<!--导入依赖
-->
<dependencies
>
<!--mysql驱动
-->
<dependency
>
<groupId
>mysql
</groupId
>
<artifactId
>mysql
-connector
-java
</artifactId
>
<version
>5.1.47</version
>
</dependency
>
<!--mybatis
-->
<!-- https
://mvnrepository
.com
/artifact
/org
.mybatis
/mybatis
-->
<dependency
>
<groupId
>org
.mybatis
</groupId
>
<artifactId
>mybatis
</artifactId
>
<version
>3.5.2</version
>
</dependency
>
<!--junit
-->
<dependency
>
<groupId
>junit
</groupId
>
<artifactId
>junit
</artifactId
>
<version
>4.12</version
>
</dependency
>
</dependencies
>
2.创建一个子模块
编写Mybatis的核心配置文件 (在resources下,通常名命mybatis-config.xml)
<?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核心配置文件
-->
<configuration
>
<environments
default="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/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
<property name
="username" value
="root"/>
<property name
="password" value
="123456"/>
</dataSource
>
</environment
>
</environments
>
</configuration
>
编写mybatis工具类
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory
;
static{
try {
String resource
= "mybatis-config.xml";
InputStream inputStream
= Resources
.getResourceAsStream(resource
);
sqlSessionFactory
= new SqlSessionFactoryBuilder().build(inputStream
);
} catch (IOException e
) {
e
.printStackTrace();
}
}
public static SqlSession
getSqlSession(){
return sqlSessionFactory
.openSession();
}
}
3.编写代码
实体类
package com
.peach
.pojo
;
public class User {
private int id
;
private String name
;
private String pwd
;
public User() {
}
public User(int id
, String name
, String pwd
) {
this.id
= id
;
this.name
= name
;
this.pwd
= pwd
;
}
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 String
getPwd() {
return pwd
;
}
public void setPwd(String pwd
) {
this.pwd
= pwd
;
}
@Override
public String
toString() {
return "User{" +
"id=" + id
+
", name='" + name
+ '\'' +
", pwd='" + pwd
+ '\'' +
'}';
}
}
DAO接口,相当于Mybatis中的Mapper
public interface UserDao {
List
<User
> getUserList();
}
接口实现类由原来的UserDaoImpl转为一个 Mapper配置文件.
<?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">
<!--namespace
=绑定一个对应的Dao
/Mapper接口
-->
<mapper namespace
="com.kuang.dao.UserDao">
<!--select查询语句
-->
<select id
="getUserList" resultType
="com.kuang.pojo.User">
select
* from mybatis
.user
</select
>
</mapper
>
4.测试
在test中编写测试类,而且包名与main中尽量对应一致 都是固定步骤:
public class UserDaoTest {
@Test
public void test(){
SqlSession sqlSession
= MybatisUtils
.getSqlSession();
UserMapper userDao
= sqlSession
.getMapper(UserMapper
.class);
List
<User
> userList
= userDao
.getUserList();
for (User user
: userList
){
System
.out
.println(user
);
}
sqlSession
.close();
}
}
第二部分,在第一部分搭建的基础上进行增删改查
只需对下面这三个文件按图片表号顺序修改
1.select
编写接口(Mapper)
User
getUserById(int id
);
编写对应的mapper中的SQL语句 在之前学习的JDBC中,实现类需要写SQL一系列语句,而mybatis中只需写一个标签
<select id
="getUserById" parameterType
="int" resultType
="com.kuang.pojo.User">
select
* from mybatis
.user where id
= #
{id
}
</select
>
测试
@Test
public void getUserById() {
SqlSession sqlSession
= MybatisUtils
.getSqlSession();
UserMapper mapper
= sqlSession
.getMapper(UserMapper
.class);
User user
= mapper
.getUserById(1);
System
.out
.println(user
);
sqlSession
.close();
}
2.Insert
<!--对象中的属性,可以直接取出来
-->
<insert id
="addUser" parameterType
="com.kuang.pojo.User">
insert into mybatis
.user (id
, name
, pwd
) values (#
{id
},#
{name
},#
{pwd
});
</insert
>
3.update
<update id
="updateUser" parameterType
="com.kuang.pojo.User">
update mybatis
.user
set name
=#
{name
},pwd
=#
{pwd
} where id
= #
{id
} ;
</update
>
4.delete
<delete id
="deleteUser" parameterType
="int">
delete from mybatis
.user where id
= #
{id
};
</delete>