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>
坚信:一分耕耘,一份收获!