1.項目pom.xml [導入依賴]
<!--mybatis架構-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!--連接配接資料庫驅動包-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
2.實體類User 中屬性: uid,uname,upwd
3.項目的 MyBatis.xml 配置檔案
位置: Resources檔案夾下,項目啟動自動運作加載該檔案
功能: * 連接配接資料庫,* 配置實體類路徑[權限定:包名+類名]
<?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">
<!--事務: 原始的jdbc模式 需要自動 送出 -->
<transactionManager type="JDBC"/>
<!--配置連接配接資料庫資訊-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/water?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--配置實體類的 映射檔案-->
<mappers>
<mapper class="com.zzw.mapper.UserMapper"></mapper>
</mappers>
</configuration>
4. UserMapper接口類 [接口類一旦寫完,需去mybatis.xml中配置]
package com.zzw.mapper;
import com.zzw.model.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
public interface UserMapper {
//注解式開發
//查詢所有資訊
@Select("select * from User")
@Results({
@Result(property = "uid",column = "uid",id=true),
@Result(property = "uname",column = "uname"),
@Result(property = "upwd",column = "upwd")
})
public List<User> findAllUser();
//增加
@Insert("insert into User(uname,upwd)values(#{uname},#{upwd})")
@Results({
@Result(property = "uid" ,column = "uid",id=true),
@Result(property = "uname" ),
@Result(property = "upwd")
})
public void addUser(User u);
//修改
@Update("update User set uname=#{uname},upwd=#{upwd} where uid=#{uid}")
public int updateUserById(User user);
//删除
@Delete("delete from User where uid=#{uid}")
public int deleteById(int uid);
}
5.測試類 [加載MyBatis.xml檔案,測試]
package com.zzw.test;
import com.zzw.mapper.UserMapper;
import com.zzw.model.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
public class UserTest {
private SqlSession sqlSession;
@Before
public void before(){
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(this.getClass().getClassLoader().getResourceAsStream("mybatis.xml"));
sqlSession=sqlSessionFactory.openSession();
}
@Test
public void test(){
UserMapper um=sqlSession.getMapper(UserMapper.class);
//查詢
List<User> users=um.findAllUser();
for (User u : users) {
System.out.println(u.getUid() + "\t" + u.getUname() + "\t" + u.getUpwd());
}
//增加
User uu=new User("霞飛","321qwe");
um.addUser(uu);
//修改
User u=new User(7,"張國榮","80");
int n=um.updateUserById(u);
System.out.println(n+"受影響");
//删除
int i=um.deleteById(3);
System.out.println(i+"受影響");
//送出
sqlSession.commit();
}
}
最後解釋以下代碼:
第一種
@Select("select * from User")
@Results({
@Result(property = "uid",column = "uid",id=true),
@Result(property = "uname",column = "uname"),
@Result(property = "upwd",column = "upwd")
})
public List<User> findAllUser();
//1行:@Select 辨別你底下方法要做查詢 ,括号中填寫查詢語句
//2行:類似于以前實體配置檔案中的屬性
//3,4,5行 中填寫你實體類屬性 property:實體類屬性 column:資料庫字段名
//7行 查詢的方法
第二種 可省略其中@Results,但必須字段名是一張表中的,若有不同的,則需要手動如第一種 配置。。。
@Select("select * from User")
public List<User> findAllUser();
總結:使用純注解方式,不再去寫實體類配置檔案,需注意的是在mybatis.xml檔案中,
* 配置實體類配置檔案路徑:<mapper resource="com/zzw/model/Province.xml"></mapper>
* 注解方式(這裡使用的):<mapper class="com.zzw.mapper.UserMapper"></mapper>
堅信:一分耕耘,一份收獲!