crud就是增删改查的意思
当mybatis中同时具有xml配置文件和注解时,会报错,不管你有没有用xml文件
在这里插入代码片
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>day58</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>15</maven.compiler.source>
<maven.compiler.target>15</maven.compiler.target>
</properties>
</project>
<?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>
<!-- 配置别名-->
<typeAliases>
<package name="como.ithema.doamin"/>
</typeAliases>
<!-- 配置环境-->
<environments default="mysql">
<!-- 配置mysql的环境-->
<environment id="mysql">
<!-- 配置事务类型-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源连接池-->
<dataSource type="POOLED">
<!-- 配置连接数据库的四个基本信息-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///db1?serverTimezone=Asia/Shanghai"/>
<property name="username" value="root"/>
<property name="password" value="123123"/>
</dataSource>
</environment>
</environments>
<!--带有注解的接口所在位置-->
<mappers>
<package name="com.ithema.dao"/>
</mappers>
</configuration>
package com.ithema.domain;
import java.io.Serializable;
/**
* @Date 2021/5/8 21:37
* @Created by wangle
* @Description
*/
public class User implements Serializable {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
package com.ithema.dao;
import com.ithema.domain.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
/**
* @Date 2021/5/8 21:42
* @Created by wangle
* @Description 在mybatis 中针对crud共有四个注解,分别是 @select @insert @ update @delete
*/
public interface IUserdao {
@Select("select * from user")
List<User> findAll();
/**
* 保存用户
* @param user
*/
@Insert("insert into user(name ,id,age) values(#{name},#{id},#{age})")
void saveUser(User user);
/**
* 更新操作
* @param user
*/
@Update("update user set name=#{name},id=#{id},age=#{age} where id=#{id}")
void updateUser(User user);
//删除操作
@Delete("delete from user where id=#{id}")
void deleteUser(int id);
@Select("select * from user where id=#{id}")
List<User> findbyid(int id);
//根据用户名称模糊查询
@Select("select * from user where name like '%${value}%'")
List<User> selectByname(String name);
//查询数据数量
@Select("select count(*) from user ")
int countuserdata();
}
import com.ithema.dao.IUserdao;
import com.ithema.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* @Date 2021/5/9 9:45
* @Created by wangle
* @Description
*/
public class Annoationtest {
InputStream in;
SqlSessionFactory factory;
SqlSession session;
IUserdao userdao;
@Before
public void init() throws IOException {
in= Resources.getResourceAsStream("SqlMapConfig.xml");
factory=new SqlSessionFactoryBuilder().build(in);
session= factory.openSession();
userdao=session.getMapper(IUserdao.class);
}
@After
public void destroy() throws IOException {
session.commit();
session.close();
in.close();
}
@Test
public void test1(){
User u=new User();
u.setAge(12);
u.setName("biabia");
u.setId(34);
userdao.saveUser(u);
}
@Test
public void test2(){
User u=new User();
u.setAge(12);
u.setName("呱呱");
u.setId(34);
userdao.updateUser(u);
}
@Test
public void test3(){
userdao.deleteUser(10);
}
@Test
public void test4(){
List<User> list= userdao.findbyid(1);
for (User user:list
) {
System.out.println(user);
}
}
@Test
public void test5() {
String name = "w";
List<User> users = userdao.selectByname(name);
for (User user : users
) {
System.out.println(user);
}
}
@Test
public void test6(){
int number=userdao.countuserdata();
System.out.println(number);
}
}