Mybatis 简单的CRUD 基于XML文件配置,mybatiscrud
所有的ORM框架学习曲线都是先来一个CRUD爽一爽,下面我们就来CRUD一下,所有的配置都是基于上一篇的配置。废话不多说,直接上代码。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bird.mybatis.bean.userMapper">
<!--CRUD -->
<insert id="insertUser" parameterType="com.bird.mybatis.bean.Users">
insert into users(name, age) values(#{name}, #{age});
</insert>
<delete id="deleteUser" parameterType="int">
delete from users where id = #{id};
</delete>
<update id="updateUser" parameterType="com.bird.mybatis.bean.Users">
update users set name = #{name}, age = #{age} where id = #{id};
</update>
<select id="getUser" parameterType="int" resultType="com.bird.mybatis.bean.Users">
select * from users where id = #{id};
</select>
<select id="getAllUser" resultType="com.bird.mybatis.bean.Users">
select * from users;
</select>
</mapper>package com.bird.mybatis.bean;
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 org.junit.Before;
import org.junit.Test;
public class MyTest {
private SqlSessionFactory factory;
@Before
public void init() {
String resource = "conf.xml";
Reader reader = null;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
factory = new SqlSessionFactoryBuilder().build(reader);
}
@Test
public void testAdd() {
//默认是手动的
SqlSession session = factory.openSession();
String statement = "com.bird.mybatis.bean.userMapper.insertUser";
int rows = session.insert(statement, new Users(-1, "哈哈", 29));
//提交
session.commit();
System.out.println(rows);
session.close();
}
@Test
public void testUpdate() {
SqlSession session = factory.openSession();
String statement = "com.bird.mybatis.bean.userMapper.updateUser";
session.update(statement, new Users(4, "呵呵", 29));
session.commit();
session.close();
}
@Test
public void testDelete() {
SqlSession session = factory.openSession();
String statement = "com.bird.mybatis.bean.userMapper.deleteUser";
session.delete(statement, 1);
session.commit();
session.close();
}
@Test
public void testGetAllUser() {
SqlSession session = factory.openSession();
String statement = "com.bird.mybatis.bean.userMapper.getAllUser";
List<Users> list = session.selectList(statement);
System.out.println(list.size());
session.close();
}
}
Ok,so easy, 哪里不会点哪里
typeAliases标签 是写实体类的别名,写了之后可以在写Sql配置文件例如<select>标签中的属性就可以不用写实体的具体路径直接用别名就可以了,可以简化代码给你看个例子:没有别名这样写<select resultType="com.sjh.entity.VoteUser"> 写了别名就可以这样写<select resultType="VoteUsers"> 直接写别名就可以不用再写实体的路径了,VoteUsers就能在任何地方代替“com.sjh.entity.VoteUser”被使用。如果很多属性涉及到实体类,直接写别名很方便的。你说你删了程序照样跑,写配置的时候你一定是没有应用到别名,都写得实体路径。希望通过我的一番解释你能明白这个标签的用途。
我个人的观点
理想的状态是把逻辑都放到 xml 里面,但具体因情况而定。
1.如果是做产品的是时候尽可能放到xml.但逻辑比较复杂,又比较难以做到.
2.如果是做项目,并且要求你开发的速度较快,那就放 dao中了.
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。