项目结构
一,通过注解实现增删改查
第一步
修改mybatis-config.xml中的映射
<package name="com.it.www.dao"/>
第二步
创建注解开发接口
package com.it.www.dao;
import com.it.www.pojo.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;
/**
* <p>@description : 该类功能 TODO
* </p>
* <p>@package : com.it.www.dao</p>
* <p>@author : ZiXieqing</p>
* <p>@createTime : 2023-02-08</p>
* <p>@version : V1.0.0</p>
*/
public interface NoteDao {
/**
* 注解开发显示
*/
@Select("select * from user")
List<User> showUsersByAT();
/**
* 注解开发删除
*/
@Delete("delete from user where userId=#{userId}")
int deleteUserByUserId1(int userId);
/**
* 注解开发修改
*/
@Update("UPDATE user SET userName=#{userName},userSex = #{userSex} " +
"WHERE userId=#{userId}")
int updataUser(User user);
/**
* 注解开发添加
*/
@Insert("INSERT INTO user VALUES( #{userId},#{userName},#{userSex}," +
" #{userAge}, #{userBirthday}," +
" #{userPhone},#{userAddress}," +
" #{departId},#{gradeId})")
int addUser(User user);
}
第三步
通过封装的mybatis工具类实现接口中的方法
/**
* 注解开发显示数据
*/
@Test
public void showUserByNone() {
SqlSession sqlSession = this.createSqlSession();
NoteDao dao = sqlSession.getMapper(NoteDao.class);
List<User> userList = dao.showUsersByAT();
userList.forEach(user -> System.out.println(user));
this.colseSqlSession(sqlSession);
}
/**
* 注解添加用户信息
*/
@Test
public void addUser(){
SqlSession sqlSession = this.createSqlSession();
NoteDao dao = sqlSession.getMapper(NoteDao.class);
User user1 = new User(0,"高育良","男1",28,"2022-8-9","1234567","李家村",1,1);
int row = dao.addUser(user1);
if (row > 0) {
System.out.println("添加成功");
sqlSession.commit();
} else {
System.out.println("add User have error");
}
this.colseSqlSession(sqlSession);
}
/**
* 注解修改用户信息
*/
@Test
public void updataUser(){
SqlSession sqlSession = this.createSqlSession();
NoteDao dao= sqlSession.getMapper(NoteDao.class);
User user = new User();
user.setUserId(14);
user.setUserName("卫妝");
user.setUserSex("女");
int row = dao.updataUser(user);
if (row > 0) {
System.out.println("修改成功");
sqlSession.commit();
} else {
System.out.println("update User have error");
}
this.colseSqlSession(sqlSession);
}
/**
* 注解删除信息
*/
@Test
public void deleteUser111(){
SqlSession sqlSession = this.createSqlSession();
NoteDao dao = sqlSession.getMapper(NoteDao.class);
int row = dao.deleteUserByUserId1(15);
if (row > 0) {
System.out.println("删除成功");
sqlSession.commit();
} else {
System.out.println("delete User have error");
}
this.colseSqlSession(sqlSession);
}
二,通过注解开发实现一对多
package com.it.www.dao;
import com.it.www.pojo.BankCar;
import com.it.www.pojo.User;
import org.apache.ibatis.annotations.*;
import javax.annotation.Resources;
import java.util.List;
/**
* <p>@description : 该类功能 注解开发多表操作
* </p>
* <p>@package : com.it.www.dao</p>
* <p>@author : ZiXieqing</p>
* <p>@createTime : 2023-02-08</p>
* <p>@version : V1.0.0</p>
*/
public interface NoteDao {
/**
* 一对多注解开发
*/
@Select("select * from user")
@Results({
@Result( property = "userId" ,column = "#{userId}"),
@Result(property = "userName" , column = "#{userName}"),
@Result(property = "userIdCard", column = "#{userIdCard}"),
@Result(property = "userPhone", column = "#{userPhone}"),
@Result(property = "userPassword", column = "#{userPassword}"),
@Result(property = "userAddress", column = "#{userAddress}"),
@Result(property = "bankcarList", javaType = List.class,
column = "userId",
many = @Many(select = "com.it.www.dao.NoteDao.findBanksByUserId")
)
})
List<User> showUserBYNote();
@Select("select * from bankcar where userId=#{userId}")
List<BankCar> findBanksByUserId(int userId);
}
代码若有不严谨之处,请大佬们多多指点 !!!