Mybatis简单增删改查操作基于Annotation

来源:互联网 发布:sql注入的危害性 编辑:程序博客网 时间:2024/06/06 14:19

基于Annotation的Mybatis配置比xml更加的便捷:

首先修改我们的通用配置文件:

<?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"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="oracle.jdbc.driver.OracleDriver" /><property name="url" value="jdbc:oracle:thin:@localhost:1521:MYWEBDB" /><property name="username" value="WEBUSER" /><property name="password" value="123456" /></dataSource></environment></environments><mappers><mapper class="com.smile.entity.UserMapper"/></mappers></configuration>
然后我们创建UserMapper接口,省去了对userMapper的配置:

package com.smile.entity;import java.util.List;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;public interface UserMapper {@Insert("insert into users(id,name,age) values(#{id},#{name},#{age})")public int insertUser(User user);@Delete("delete from users where id=#{id}")public int deleteUserById(int id);@Update("update users set name=#{name},age=#{age} where id=#{id}")public int updateUser(User user);@Select("select * from users where id=#{id}")public User getUserById(int id);@Select("select * from users order by id")public List<User> getAllUser();@Select("select count(*) from users")public int getUserCount();}
同时修改UserServices:

package com.smile.services;import java.util.List;import org.apache.ibatis.session.SqlSession;import com.smile.entity.User;import com.smile.entity.UserMapper;public class UserService {public void getUser(SqlSession session,int id){UserMapper mapper = session.getMapper(UserMapper.class);User user = mapper.getUserById(id);System.out.println(user);}public void insertUser(SqlSession session,User user){UserMapper mapper = session.getMapper(UserMapper.class);mapper.insertUser(user);session.commit();System.out.println("UserCount:"+getUserCount(session));}public int getUserCount(SqlSession session){UserMapper mapper = session.getMapper(UserMapper.class);return mapper.getUserCount();}public List<User> getAllUsers(SqlSession session){UserMapper mapper = session.getMapper(UserMapper.class);return mapper.getAllUser();}}
使用Mapper中的方法来替换session的方法。

测试的类没有变化:

package com.smile.test;import java.io.IOException;import java.io.Reader;import java.util.List;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 com.smile.entity.User;import com.smile.services.UserService;public class Test {public static void main(String[] args) throws IOException {String resource = "Mybatis-Config.xml";// 加载mybatis 的配置文件(它也加载关联的映射文件)Reader reader = Resources.getResourceAsReader(resource);// 构建sqlSession 的工厂SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);SqlSession session = sessionFactory.openSession();try{// 创建能执行映射文件中sql 的sqlSessionUserService us = new UserService();int id = 1;us.getUser(session, id);//User user = new User(4,"谢逊",90);//us.insertUser(session, user);List<User> users = us.getAllUsers(session);for(int i = 0;i< users.size();i++){System.out.println(users.get(i));}}finally{session.close();}}}
项目文档结构如下图:


0 0
原创粉丝点击