mybatis基于注解开发的单表查询05

mybatis基于注解开发的单表查询05

注解开发的好处

注解的应用,加速度了代码开发的速度,并且不用去写xml映射文件.

注解开发的步骤

1.将SqlMapConfig.xml的主配置文件的mappers标签修改成注解开发

 <mappers>
        <package name="cn.itcast.dao"/>
    </mappers>

 

2.需要在IUserDao的增删改查方法上面增加注解和对应的sql语句

 
import cn.itcast.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;
​
public interface UserDao {
@Select("select * from user")
   List<User> findAll();
@Insert("insert  into user(username,address,sex,birthday)values(#{username},#{address},#{sex},#{birthday})")
 void save(User user);
@Update("update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday}where id=#{id}")
  void update(User user);
@Delete("delete from user where id=#{id}")
  void delete(Integer id);
@Select("select *from user where id=#{id}")
  User findByid(Integer id);
@Select("select * from user where username like #{username}")
  List<User> findByName(String name);
@Select("select count(*) from user")
 int findCount();
​
}

注意事项

通过映射文件xml和注解不能在同一个dao中进行否则程序会报错,最好一个dao要不全部使用注解开发,要不全部使用xml的形式开发.

mybatis进行重复操作的封装

在SqlMapConfig.xml中数据源的配置可以直接采用properties文件进行解析直接采用表达式的形式.

jdbcConfig.properties:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///chucun
jdbc.username=root
jdbc.password=111111

SqlMapConfig.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>
​
    <properties resource="jdbcConfig.properties"></properties>
​
    <typeAliases>
        <package name="cn.itcast.domain.User"></package>
    </typeAliases>
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <package name="cn.itcast.dao"/>
    </mappers>
</configuration>

将测试类中的读取主配置文件SqlMapConfig.xml和创建工厂和生产代理利用注解@Before 封装到方法inint()中让程序运行开始执行并且利用注解@After将提交事务和释放资源封装到方法destory()中让程序在结束前销毁

 private InputStream in;
    private SqlSessionFactory factory;
    private SqlSession session;
    private UserDao userDao;
​
    @Before
    public void inint() throws IOException {
        in = Resources.getResourceAsStream("SqlMapConfig.xml");
        factory = new SqlSessionFactoryBuilder().build(in);
        session = factory.openSession();
        userDao = session.getMapper(UserDao.class);
    }
​
    @After
    public void destory() throws IOException {
        session.commit();
        session.close();
        in.close();
    }
​

可以通过注解的形式让实体类中的属性可以与数据库中的字段不一致也可以达成mybatis中crud的操作

 

 

resultMap注解可以让别的crud操作语句也可以直接使用,避免了每个语句都需要用注解来配置.

二级缓存基于注解开发

只需要在IUserDao的接口名上增加注解@CacheNamespace(blocking = true)就可以实现二级缓存

 
@CacheNamespace(blocking = true)
public interface UserDao {

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全干程序员demo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值