Mybatis(配置总结)
一. Mybatis基本配置
1 . 首先在mvnre的仓库中找到SpringMVC的相应配置文件,传送门: http://mvnrepository.com
2 . 相应配置文件拷贝到pom.xml
文件<dependencies>
下.
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
3 . 将以下配置拷贝到<build>
下:
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.tld</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.tld</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
4 . 创建数据库userprac
及User表,结构为user_id
,user_name
,user_des
5 . 在resources文件夹下创建db.properties
数据库连接配置
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/userprac
jdbc.username = root
jdbc.password = 111111
env_choosen = deve
6 . 新建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>
<!--这个配置文件中,所有的标签都有严格的顺序-->
<properties resource="db.properties"/>
<environments default="${env_choosen}">
<environment id="deve">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--<mapper resource="com/lanou/mapper/UserMapper.xml"/>-->
<!--自动读取mapper包下的所有xml文件-->
<package name="com.lanou.mapper"/>
</mappers>
</configuration>
7 . 创建bean
,mapper
,test
文件夹分别存放User
实体类,UserMapper
UserMapper.xml
接口文件,BatisTest
测试类文件
User实体类:
package com.lanou.bean;
public class User {
private Integer id;
private String name;
private String des;
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", des='" + des + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDes() {
return des;
}
public void setDes(String des) {
this.des = des;
}
}
接口:
UserMapper
package com.lanou.mapper;
import com.lanou.bean.User;
import org.apache.ibatis.annotations.Param;
/**
* Created by dllo on 17/10/18.
*/
public interface UserMapper {
Integer updataUser(User user);
Integer updataUserName(@Param("id")Integer id, @Param("name")String name);
Integer deleteUser(@Param("lastname")String lastname);
void insterUser(@Param("name")String name,@Param("des")String des);
}
接口:
UserMapper.xml
<?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 一般写对应的接口路径-->
<mapper namespace="com.lanou.mapper.UserMapper">
<resultMap id="BaseMap" type="com.lanou.bean.User">
<id column="user_id" property="id"/>
<result column="user_name" property="name"/>
<result column="user_des" property="des"/>
</resultMap>
<sql id="Column_List">
user_id,user_name,user_des
</sql>
<select id="findAllUser" resultMap="BaseMap">
SELECT
<include refid="Column_List"/>
FROM user WHERE user_des = #{des}
</select>
<update id="updataUser" parameterType="com.lanou.bean.User">
UPDATE user SET user_name FROM user WHERE user_id=#{id};
</update>
<update id="updataUserName" parameterType="com.lanou.bean.User">
UPDATE user SET user_name = #{name} WHERE user_id=#{id};
</update>
<delete id="deleteUser" parameterType="com.lanou.bean.User">
DELETE FROM user WHERE user_name LIKE CONCAT(#{lastname},'%')
</delete>
<insert id="insterUser" parameterType="com.lanou.bean.User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user VALUES (NULL ,#{name},#{des})
</insert>
</mapper>
测试类:``BatisTest
package com.lanou.test;
import com.lanou.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
/**
* Created by dllo on 17/10/18.
*/
public class BatisTest {
@Test
public void test() throws IOException {
// 1. 加载config文件
String re = "config.xml";
InputStream stream = Resources.getResourceAsStream(re);
// 2. 创建SqlSessionFactory
SqlSessionFactory factory =
new SqlSessionFactoryBuilder().build(stream);
// 3. 生产sqlSession对象
SqlSession session = factory.openSession();
// 4. 获取mapper对象
UserMapper mapper = session.getMapper(UserMapper.class);
Integer result = mapper.updataUserName(1,"李雷");
session.commit();
session.close();
}
@Test
public void test1() throws IOException {
// 1. 加载config文件
String re = "config.xml";
InputStream stream = Resources.getResourceAsStream(re);
// 2. 创建SqlSessionFactory
SqlSessionFactory factory =
new SqlSessionFactoryBuilder().build(stream);
// 3. 生产sqlSession对象
SqlSession session = factory.openSession();
// 4. 获取mapper对象
UserMapper mapper = session.getMapper(UserMapper.class);
Integer result = mapper.deleteUser("张");
if (result > 0 ){
System.out.println("成功");
}else {
System.out.println("失败");
}
session.commit();
session.close();
}
@Test
public void test2() throws IOException {
// 1. 加载config文件
String re = "config.xml";
InputStream stream = Resources.getResourceAsStream(re);
// 2. 创建SqlSessionFactory
SqlSessionFactory factory =
new SqlSessionFactoryBuilder().build(stream);
// 3. 生产sqlSession对象
SqlSession session = factory.openSession();
// 4. 获取mapper对象
UserMapper mapper = session.getMapper(UserMapper.class);
mapper.insterUser("韩梅梅","学员");
session.commit();
session.close();
}
}
8 . 运行测试类文件可以看到相应结果