本文主要記錄Mybatis的簡單使用,供自己日後查看,若有不盡不詳內容,不在本文考慮範圍內,但可以私下討論。
情景:利用Mybatis完成數據庫的增刪改查功能。
步驟:
1.在mysql創建用戶信息表:
2.創建一個簡單的maven工程,添加所依賴jar包:
<dependencies>
<!-- 添加Spring4.3.2的核心包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<!-- 添加spring-context包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<!-- 添加spring-tx包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<!-- 添加spring-jdbc包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<!-- 爲了方便進行單元測試,添加spring-test包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<!--添加spring-web包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<!--添加aspectjweaver包 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.5</version>
</dependency>
<!-- 添加mybatis的核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<!-- 添加mybatis與Spring整合的核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- 添加servlet3.0核心包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.2-b01</version>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 添加mysql驅動包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
<!-- 添加druid連接池包 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.12</version>
</dependency>
<!-- 添加junit單元測試包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
3.創建User實體類(該類以及後面的類沒有填寫相關包名,也沒有導入相關包,根據情況自行添加,其中我的User、UserMapper類在src/main/java中,UserMapper.xml和mybatis-config.xml在src/main/resource中)
public class User {
private int Id;
private String name;
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User [Id=" + Id + ", name=" + name + "]";
}
}
4.創建UserMapper
public interface UserMapper {
int insertUser(User user);
int deleteUser(int id);
int updateUser(User user);
User selectUserById(int id);
List<User> selectAllUser();
}
5.在對應的UserMapper路徑下創建對應的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">
<mapper namespace="com.tian.UserMapper">
<insert id="insertUser">
insert into user(name) values(#{name})
</insert>
<delete id="deleteUser">
delete from user where id=#{id}
</delete>
<update id="updateUser">
update user
set name = #{name}
where id = #{id}
</update>
<select id="selectUserById" resultType="User">
select id,name from user where id = #{id}
</select>
<select id="selectAllUser" resultType="User">
select id,name fro user
</select>
</mapper>
6.創建全局配置文件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>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases >
<package name="com.tian"/>
</typeAliases>
<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/test" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/tian/UserMapper.xml" />
</mappers>
</configuration>
7.編輯Main類運行
public class Main {
public static void main(String[] args) throws Exception {
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
reader.close();
SqlSession sqlSession = sessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//查
User user = userMapper.selectUserById(1);
System.out.println(user);
//增
userMapper.insertUser(user);
System.out.println(userMapper.selectAllUser());
//刪
userMapper.deleteUser(2);
System.out.println(userMapper.selectAllUser());
//改
User user1 =new User();
user1.setId(1);
user1.setName("xxx");
userMapper.updateUser(user1);
System.out.println(userMapper.selectAllUser());
}
}
8.實驗結果如下: