Mybatis 完全使用注解版实例

来源:互联网 发布:组合单元格数据 编辑:程序博客网 时间:2024/05/30 12:03

1 所谓的注解版,个人理解为 XXXMapper.xml文件省略掉,把需要的各种sql语句写入到了 XXXMapper接口中

如何让 主配置文件找到 接口呢,只需把 下面

<mapper resource="com/model/UserMapper.xml" />

改为

<mapper class="com.model.UserMapper" />

即可,看属性也知道,把资源文件改为了类文件的含义

2 下面是完整主配置文件
   

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 这里是指定一个数据库连接的配置文件 意思是 需要一个配置文件让用户指定好数据库的各种信息 这里做好文件的映射 注意文件必须和改配置文件同名 --><properties resource="db.properties"></properties> <typeAliases><!-- 为实体指定别名 如果不想取别名后面就必须使用全名 这里就是给类名做一个映射而已 --><typeAlias alias="user" type="com.model.User" /></typeAliases> <environments default="development"><!-- 配置多个数据库连接环境这里和 db.properties对应 --><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource></environment></environments><!--mappers其实就是JAVABEAN对应发XML文件的映射 --><mappers><!-- <mapper resource="com/model/UserMapper.xml" /> --><mapper class="com.model.UserMapper" /></mappers> </configuration>
3 下面是要更改的 Mapper接口

package com.model;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;public interface UserMapper {@Select("select * from wj_user where id=#{id}")User getUser(int id);@Update("insert into wj_user (name,sex) value( #{name},#{sex})")void insertUser(User user);}
3 下面是测试类 (执行了两个方法 查询和插入)
package com.model;import java.io.IOException;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class BatisTest {public static void main(String[] args) {InputStream input;try {input = Resources.getResourceAsStream("mybiatis-config.xml");SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(input);// SqlSessionFactoryBuilder 是用过即丢,其生命周期只存在于方法体内SqlSession mySession=  sqlSessionFactory.openSession();UserMapper userMapper = mySession.getMapper(UserMapper.class);User user = userMapper.getUser(1);//User user=  mySession.selectOne("selectOne",1);//这里读取出来之后 会自动和你javabean的属性进行映射起来System.out.println(user.getName());User userI = new User();userI.setName("doc");userI.setSex("hello");userMapper.insertUser(userI);mySession.commit();mySession.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

4 查看执行结果 已经插入了新数据





原创粉丝点击