文章目錄
-
- 使用上一次學習的項目
- 一、查詢操作(按名字查詢)
-
-
- 1.在UserMapper.xml裡添加映射語句
- 2.在UserMapper接口裡添加方法
- 3.在測試類TestUserMapper裡添加測試方法
- 4.測試
-
- 二、插入操作
-
-
- 1.在UserMapper.xml裡增加映射語句
- 2.在UserMapper接口裡增加方法
- 3.在測試類TestUserMapper裡添加測試方法
- 4.測試
-
- 三、更新操作
-
-
- 1.在UserMapper.xml裡增加映射語句
- 2.在UserMapper接口裡增加方法
- 3.在TestUserMapper裡編寫測試方法
- 4.測試
-
- 四、删除操作
-
-
- 1.在UserMapper.xml檔案裡添加映射語句
- 2.在UserMapper接口裡增加方法
- 3.在測試類TestUserMapper裡添加測試方法
- 4.測試
-
- 五、本次涉及源碼
-
-
- 映射器配置檔案mybatis-config.xml
- UserMapper.xml
- 接口UserMapper.java
- 測試類TestUserMapper.java
-
- 總結
使用上一次學習的項目
更改UserMapper.xml檔案,并引入結果映射元素
測試結果無變化
一、查詢操作(按名字查詢)
1.在UserMapper.xml裡添加映射語句
2.在UserMapper接口裡添加方法
3.在測試類TestUserMapper裡添加測試方法
4.測試
二、插入操作
1.在UserMapper.xml裡增加映射語句
2.在UserMapper接口裡增加方法
3.在測試類TestUserMapper裡添加測試方法
4.測試
三、更新操作
1.在UserMapper.xml裡增加映射語句
2.在UserMapper接口裡增加方法
3.在TestUserMapper裡編寫測試方法
4.測試
四、删除操作
1.在UserMapper.xml檔案裡添加映射語句
2.在UserMapper接口裡增加方法
3.在測試類TestUserMapper裡添加測試方法
4.測試
五、本次涉及源碼
映射器配置檔案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>
<!--配置實體類别名-->
<typeAliases>
<typeAlias type="net.lj.mybatis.bean.User" alias="User"/>
<typeAlias type="net.lj.mybatis.bean.Clazz" alias="Clazz"/>
<typeAlias type="net.lj.mybatis.bean.Teacher" alias="Teacher"/>
<typeAlias type="net.lj.mybatis.bean.Student" alias="Student"/>
</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/testdb?useSSL=false&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--配置實體關系映射器檔案-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
<mapper resource="mapper/ClazzMapper.xml"/>
<mapper resource="mapper/StudentMapper.xml"/> </mappers>
</configuration>
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="net.lj.mybatis.mapper.UserMapper">
<resultMap id="UserMap" type="User">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
<result column="address" property="address"/>
</resultMap>
<select id="findById" parameterType="int" resultType="User">
SELECT * FROM t_user WHERE id = #{id};
</select>
<select id="findAll" resultMap="UserMap">
SELECT * FROM t_user;
</select>
<select id="findByName" resultType="User">
Select * FROM t_user WHERE name LIKE CONCAT(#{name},'%');
</select>
<insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO t_user(name,age,address) VALUE(#{name},#{age},#{address});
</insert>
<update id="update" parameterType="User">
update t_user set name = #{name},age=#{age},address=#{address} where id=#{id};
</update>
<delete id="deleteById" parameterType="int">
delete from t_user where id=#{id};
</delete>
</mapper>
接口UserMapper.java
package net.lj.mybatis.mapper;
import net.lj.mybatis.bean.User;
import java.util.List;
/**
* 使用者映射器接口
*/
public interface UserMapper {
// @Select("SELECT * FROM t_user WHERE id = #{id}")
User findById(int id);
// @Select("SELECT * FROM t_user")
List<User> findAll();
List<User> findByName(String name);
int insert(User user);
int update(User user);
int deleteById(int id);
}
測試類TestUserMapper.java
package net.lj.mybatis.mapper;
import net.lj.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;
/**
* 測試使用者映射器接口
*/
public class TestUserMapper {
private SqlSession sqlSession;//SQL會話
private UserMapper userMapper;//使用者映射器
@Before
public 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();
}
}
@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() {
List<User> users = userMapper.findAll();
users.forEach(user -> System.out.println(user));
}
@Test
public void testFindByName(){
String name="王";
List<User> users = userMapper.findByName(name);
if (users.size() > 0) {
users.forEach(user -> System.out.println(user));
} else {
System.out.println("沒有找到姓名為["+name+"]的紀律");
}
}
@Test
public void testInsert(){
User user = new User();
user.setName("張三");
user.setAge(30);
user.setAddress("東北三裡屯窩窩鄉3号");
int count = userMapper.insert(user);
sqlSession.commit();//送出資料庫
if (count > 0) {
System.out.println("記錄插入成功");
System.out.println("插入的新記錄:" + user);
} else {
System.out.println("記錄插入失敗");
}
}
@Test
public void testUpdate(){
User user=userMapper.findById(4);
System.out.println("更新前的記錄" + user);
user.setName("麼麼哒");
user.setAge(25);
user.setAddress("北京市海澱區天朝路6号小區");
int count = userMapper.update(user);
sqlSession.commit();//送出
if (count > 0) {
System.out.println("更新成功");
System.out.println("更新後的記錄:" + user);
} else {
System.out.println("更新失敗");
}
}
@Test
public void deleteById(){
int id = 5;
User user = userMapper.findById(id);
System.out.println("待删除的記錄" + user);
userMapper.deleteById(id);
sqlSession.commit();//送出
System.out.println("編号為“" + id + "”的記錄删除成功");
user = userMapper.findById(id);
if (user != null) {
System.out.println(user);
} else {
System.out.println("編号為“" + id + "”的記錄未找到");
}
}
@After
public void destroy(){
//關閉SQL會話
sqlSession.close();
//提示使用者SQL會話關閉
System.out.println("sqlSession對象已關閉");
}
}
總結
通過兩次學習,對MyBatis更加的熟悉了,步驟雖多但條理清晰。隻是在使用者關系配置檔案上的了解還有些淩亂。