您的位置:首页 > 其它

Mybatis增删改查实例

2017-08-17 20:35 225 查看
一.什么是MyBatis

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

二.创建数据库表

create table student (id integer primary key auto_increment, name varchar(100), sex varchar(100), hobby varchar(200));

insert into student values(null, 'zhangsan','male','吃吃吃');
insert into student values(null, 'lisi', 'female','玩玩玩');


三.配置pom.xml(用的maven创建的)需要加入依赖

<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>

<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
<dependency>
还需要在build 下面加入
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.tld</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.tld</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>


四.


五.配置baits-config.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="db.properties"/>

<!--别名-->
<typeAliases>
<!--将这个包下面的对应的类别名设置为类名-->
<!--下面这个写你的bean名字-->
<package name="com.xxx.bean"/>
</typeAliases>

<!--这是mybatis 的配置文件
如果单独使用mybatis,必须写这个文件
如果和spring 使用,不需要这个文件
这个里面所有的都是有顺序的-->
<environments default="deve">
<!--这个environments 标签下可以配置很多歌environment 标签
使用default 属性来确定当前使用的是哪个environment-->
<environment id="deve">
<!--事务管理器-->
<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>
<!--自动识别设置的包下面的mapper.xml-->
<!--下面这个写你的mapper名字-->
<package name="com.xxx.mapper"/>
</mappers>
</configuration>


六.studentMapper

//1.创建一个xxx的Mapper的接口文件
public interface StudentMapper {

List<Student> findAllStudent();

//带参数的batis方法的写法
//Student findAllStudentById(Integer id);
Student findAllStudentById(@Param("uid") Integer id);
//增加一条数据
void insertNewStudent(@Param("name") String name,
@Param("sex") String sex,
@Param("hobby") String hobby);
//实体类的方式增加
void insertStu(Student student);

void deleteById(@Param("uid") Integer id);

void  updateStudent(Student student);
}


七.StudentMapper.xml (最好和你上边的mapper名字对应)

<?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">
<!--用namespace 来配置 当前接口,所有的实现都在xml中写,不会创建一个类来实现-->
<mapper namespace="com.xxx.mapper.StudentMapper">
<!--结果映射
作用:把数据库的列名 和实体类的属性名关联起来-->
<resultMap id="BaseMap" type="Student">
<!--把数据库中的id 赋值给了实体类的id-->
<id column="id" property="id"/>
<result column="name" property="name" javaType="String" jdbcType="VARCHAR"/>
<result column="sex" property="sex" javaType="String" jdbcType="VARCHAR"/>
<result column="hobby" property="hobby" javaType="String" jdbcType="VARCHAR"/>
</resultMap>
<!--可以封装一段比较固定的sql 语句.方便后续的debug-->
<sql id="Base-sql">
id,name,sex,hobby
</sql>

<!--select 的id 是你的方法名字 -->
<select id="findAllStudent" resultMap="BaseMap">
SELECT
<include refid="Base-sql"/>
FROM  student
</select>
<select id="findAllStudentById" resultMap="BaseMap" parameterType="Integer">
SELECT * FROM student WHERE id=#{uid}

</select>
<insert id="insertNewStudent" >
INSERT  INTO student VALUES (NULL ,#{name},#{sex},#{hobby})

</insert>
<!--塞进实体类 ,最好写paramType 告诉他参数是一个实体类
keyProperty 就是你塞完数据,会把这个id 帮你保存到这个里面-->
<insert id="insertStu" useGeneratedKeys="true" keyProperty="id" parameterType="com.xxx.bean.Student">
INSERT  INTO student VALUES (NULL ,#{name},#{sex},#{hobby})
</insert>

<delete id="deleteById" >
DELETE FROM student WHERE id=#{uid}
</delete>

<update id="updateStudent" parameterType="com.xxx.bean.Student">
UPDATE student SET  name=#{name} ,sex=#{sex} ,hobby=#{hobby} WHERE id=#{id}
</update>

</mapper>


八.db.propertise



九.输出

public class BatisTest {
@Test
pub
a4f6
lic void test1() throws IOException {

//1. 配置mapper

//2. 读取config 文件

//除了select 其他的都需要提交事务

InputStream stream = Resources.getResourceAsStream("batis-config.xml");
//创建session工厂
SqlSessionFactory factory=
new SqlSessionFactoryBuilder().build(stream);
//打开一个session
SqlSession sqlSession=factory.openSession();

//使用session 读取一个mapper 对象
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
//调用findAllStudent方法
//        List<Student> allStudent = mapper.findAllStudent();
//        Student student = mapper.findAllStudentById(1);
//        System.out.println(allStudent);
//        System.out.println(student);

//        Student student=new Student();
//        student.setName("zhangwu");
//        student.setSex("男");
//        student.setHobby("睡觉");
//        mapper.insertNewStudent(student.getName(),student.getSex(),student.getHobby());
//        sqlSession.commit();

//这个是增加一个实体类
Student student=new Student();
student.setName("曾小贤11");
student.setSex("男");
student.setHobby("睡觉");
mapper.insertStu(student);
sqlSession.commit();

//        mapper.deleteById(5);
//        sqlSession.commit();

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: