MyBatis学习笔记(一)
生活随笔
收集整理的這篇文章主要介紹了
MyBatis学习笔记(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
一、搭建測試工程:
1.創建maven工程,pom.xml文件中添加如下依賴:
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version> </dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version> </dependency>2.編寫核心配置文件conf.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><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/mysql" /><property name="username" value="root" /><property name="password" value="mysql" /></dataSource></environment></environments><mappers><mapper resource="mapper/UserMapper.xml" /></mappers></configuration>3.編寫實體對象類User.java
public class User {private int id;private String name;private int age;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 int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", age=" + age + "]";} }4.編寫mapper接口UserMapper.java
public interface UserMapper {/*** 查詢所有** @return*/List<User> queryAll();/*** 查詢用戶** @return*/User getUser(int id);/*** 插入一個** @param user* @return*/int insetUser(User user);/*** 修改名稱** @param id* @param name* @return*/int updateUser(@Param("id") int id, @Param("name") String name);/*** 根據Id刪除** @param id* @return*/int deleteUser(int id); }5.編寫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.sysware.mapper.UserMapper"><resultMap id="user" type="com.sysware.domain.User"><id property="id" column="id" javaType="int" jdbcType="INTEGER"/><result property="name" column="name" javaType="string" jdbcType="VARCHAR"/><result property="age" column="age" javaType="int" jdbcType="INTEGER"/></resultMap><!-- 在select標簽中編寫查詢的SQL語句, 設置select標簽的id屬性為getUser,id屬性值必須是唯一的,不能夠重復使用parameterType屬性指明查詢時使用的參數類型,resultType屬性指明查詢返回的結果集類型resultType="com.sysware.domain.User"就表示將查詢結果封裝成一個User類的對象返回User類就是users表所對應的實體類--><!--根據id查詢得到一個user對象--><select id="getUser" parameterType="int"resultType="com.sysware.domain.User">select * from users where id=#{id}</select> </mapper> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.itcast.mybatis.domain.User"><sql id="cols">id,name,age,address</sql><sql id="ucols">name=#{name},age=#{age},address=#{address}</sql><!-- 查詢所有記錄 --><select id="listAll" resultType="xUser">select <include refid="cols"/> from user_c</select><!-- 按條件查詢 --><select id="find" parameterType="xUser" resultType="xUser">select * from user_c<where><if test="name!=null">and name like "%"#{name}"%"</if><if test="age!=null">and age=#{age}</if></where></select><!-- 查詢一個用戶 --><select id="get" parameterType="string" resultType="xUser">select <include refid="cols"/> from user_c where id=#{id}</select><!-- 新增 --><insert id="create" parameterType="xUser">insert into user_c (id,name,age,address) values(#{id},#{name},#{age},#{address})</insert><!-- 修改 --><update id="update" parameterType="xUser">update user_c<set><if test="name!=null">name=#{name},</if><if test="age!=null">age=#{age},</if><if test="address!=null">address=#{address},</if></set>where id=#{id}</update><!-- 刪除 --><delete id="delete" parameterType="string">delete from user_c where id=#{id}</delete> </mapper>?
6.編寫UserTest.java文件
public class UserTest {public static SqlSessionFactory sqlSessionFactory;@Beforepublic void beforeTest(){SqlSessionFactoryBuilder sqlSessionFactoryBuilder =new SqlSessionFactoryBuilder();try{sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("conf.xml"));} catch (IOException e) {e.printStackTrace();}}@AfterClasspublic static void setAfter() {sqlSessionFactory = null;}@Testpublic void testQueryAll(){SqlSession sqlSession = null;try{sqlSession = sqlSessionFactory.openSession();UserMapper userpMapper = sqlSession.getMapper(UserMapper.class);//List<User> list = userpMapper.queryAll();User user = userpMapper.getUser(1); // Iterator<User> iterator = list.iterator(); // while(iterator.hasNext()){ // System.out.println(user); // }System.out.println(user.toString());}finally {if(sqlSession!=null){sqlSession.close();}}} }8。項目總體目錄結構如下:
其中 SqlSessionFactoryBuilder 是一個關鍵的入口類,其中承擔了mybatis配置文件的加載,解析,內部構建等職責。
轉載于:https://my.oschina.net/u/3845850/blog/3001224
總結
以上是生活随笔為你收集整理的MyBatis学习笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网页布局基础
- 下一篇: “黄背心”运动持续进行 马克龙发长信呼吁