Mybatis入門增刪改查學習筆記
阿新 • • 發佈:2021-01-03
1、什麼是Mybatis
Mybatis是基於java的持久層框架,它內部封裝了jdbc,使開發者只需要關注sql語句本身
通過xml或註解的方式將要執行的各種 statement配置起來,並通過java物件和statement中sql的動態引數進行對映生成最終執行的sql語句。
最後mybatis框架執行sql並將結果對映為java物件並返回。
2、MyBatis開發入門
2.1新增MyBatis的座標
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies>
2.2建立user資料表
2.3編寫User實體類
public class User {
private int id;
private String username;
private String password;
//省略set、get、tostring方法
}
2.4編寫對映檔案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:名稱空間,和下面id一起組成查詢標識--> <mapper namespace="userMapper"> <!--查詢所有--> <!--resultType:查詢結果對應的實體型別--> <select id="findAll" resultType="user"> select * from user </select> <!--插入操作--> <!--parameterType屬性指定要插入的資料型別,#{實體屬性名}方式引用實體中的屬性值--> <insert id="save" parameterType="user"> insert into user values(#{id},#{username},#{password}); </insert> <!--修改操作--> <update id="update" parameterType="user"> update user set username=#{username},password=#{password} where id = #{id}; </update> <!--刪除操作--> <delete id="delete" parameterType="int"> delete from user where id = #{id}; </delete> </mapper>
2.5編寫核心檔案SqlMapConfig.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檔案--> <properties resource="jdbc.properties"></properties> <!--配置typeAliases,為cn.guixinchn.domain.User定義別名為: user--> <typeAliases> <typeAlias type="cn.guixinchn.domain.User" alias="user"/> </typeAliases> <!--資料來源環境--> <environments default="developement"> <environment id="developement"> <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="cn/guixinchn/mapper/UserMapper.xml"></mapper> </mappers> </configuration>
jdbc.properties
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/test
jdbc.username = root
jdbc.password = 123456
2.5編寫測試類
@Test
public void test1() throws IOException {
//模擬資料
User user = new User();
user.setUsername("測試");
user.setPassword("123");
// 獲取核心配置檔案
InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
// 獲取session工廠物件
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//獲得session回話物件
SqlSession sqlSession = sqlSessionFactory.openSession();
//執行操作 引數: namespace+id
//查詢所有
//List<User> userList = sqlSession.selectList("userMapper.findAll");
//列印資料
//System.out.println(userList);
//插入操作
//sqlSession.insert("userMapper.save",user);
//提交資料
//sqlSession.commit();
//修改操作
//sqlSession.update("userMapper.update",user);
//sqlSession.commit();
//刪除操作
//sqlSession.delete("userMapper.delete",4);
//sqlSession.commit();
//釋放資源
sqlSession.close();
}