User.java
package wust.edu.demo4.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/*@Getter
@Setter
@ToString
@EqualsAndHashCode8*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id; //id(主键)
private String name; //姓名
private Short age; //年龄
private Short gender; //性别
private String phone; //手机号
/*public User(Integer id, String name, Short age, Short gender, String phone) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.phone = phone;
}
public User() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Short getAge() {
return age;
}
public void setAge(Short age) {
this.age = age;
}
public Short getGender() {
return gender;
}
public void setGender(Short gender) {
this.gender = gender;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", gender=" + gender +
", phone='" + phone + '\'' +
'}';
}*/
}
UserMapper.java
ackage wust.edu.demo4.mapper;
import org.apache.ibatis.annotations.*;
import wust.edu.demo4.pojo.User;
import java.util.List;
@Mapper//在运行时,会自动生成该接口的实现类对象(代理对象),并且将该对象交给IOC容器管理
public interface UserMapper {
//查询所有用户数据
@Select("select * from user")
public List<User> list();
@Insert("insert into user(name, age, gender, phone) values (#{name}, #{age}, #{gender}, #{phone})")
public void insert(User user);
@Delete(" delete from user where id= #{id} ")
public void delete(int id);
@Select("select * from user where id= #{id} ")
public User get(int id);
@Update("update user set name=#{name} where id=#{id} ")
public int update(User user);
}
application.properties
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=1234
test.java
package wust.edu.demo4;
import wust.edu.demo4.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import wust.edu.demo4.pojo.User;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
@SpringBootTest//springBoot整合单元测试的注解
class Demo4ApplicationTests {
@Autowired(required = false)
private UserMapper userMapper;
@Test
public void testListUser(){
List<User> userList=userMapper.list();
userList.stream().forEach(user->{
System.out.println(user);
});
}
/*@Test
public void testJdbc() throws Exception{
//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取连接
String url="jdbc:mysql://localhost:3306/mybatis";
String username="root";
String password="1234";
Connection connection = DriverManager.getConnection(url,username,password);
//3.获取执行sql的对象Statement,执行sql
String sql="select * from user";
Statement statement=connection.createStatement();
ResultSet resultSet=statement.executeQuery(sql);
List<User> userList=new ArrayList<>();
while(resultSet.next()){
int id= resultSet.getInt("id");
String name=resultSet.getString("name");
short age= resultSet.getShort("age");
short gender= resultSet.getShort("gender");
String phone=resultSet.getString("phone");
User user=new User(id,name,age,gender,phone);
userList.add(user);
}
//4.释放资源
statement.close();
connection.close();
}*/
}
mybatis增删改查
@Mapper
public interface EmpMapper {
//根据ID删除数据
@Delete("delete from emp where id=#{id}")
public int delete(Integer id);
//新增员工
@Options(keyProperty = "id",useGeneratedKeys = true)
//@Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time)"+ "values ('Tom','汤姆',1,'1.jpg',1,'2005-01-01',1,now(),now())")
@Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time)" +
"values (#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime})")
public void insert(Emp emp);
//更新员工
@Update("update emp set username=#{username},name=#{name},gender=#{gender},image=#{image},job=#{job},entrydate=#{entrydate},dept_id=#{deptId},update_time=#{updateTime},update_time=#{updateTime} where id=#{id}")
public void update(Emp emp);
//查询
@Select("select * from emp where id=#{id}")
public Emp getById(Integer id);
/*//1.别名
@Select("select id,username,password,name,gender,image,job,entrydate,dept_id deptId,create_time createTime,update_time updateTime from emp where id=#{id}")
//2.注解
@Results({
@Result(column="dept_id",property = "deptId"),
@Result(column="create_time",property = "createTime"),
@Result(column="update_time",property = "updateTime")
})*/
//3.驼峰命名自动映射开关 public Emp getById(Integer id);
//查询
//@Select("select * from emp where name like '%${name}%' and gender=#{gender} and entrydate between #{begin} and #{end} order by update_time desc")
@Select("select * from emp where name like concat('%',#{name},'%') and gender=#{gender} and entrydate between #{begin} and #{end} order by update_time desc")
public List<Emp> list(String name, Short gender, LocalDate begin,LocalDate end);
}