關於資料庫表格,Dapped怎麼實現一對多的呼叫,和資料的無線儲存
阿新 • • 發佈:2020-12-23
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();
}