0.创建maven项目,添加jar包
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
</dependencies>
1.框架结构
[img]
[/img]
2.创建User实体
private int id;
private String name;
private String password;
private String telPhone;
private String email;
set,get方法省略。。。
3.mybatis-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,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,plugins,environments,databaseIdProvider,mappers
-->
<!-- 方式一 -->
<!--
<typeAliases>
<typeAlias type="com.yxhweb.entity.User" alias="user" />
</typeAliases>
-->
<!-- 方式二(开发使用) -->
<typeAliases>
<package name="com.yxhweb.entity"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3308/db_mybatis" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/yxhweb/mappers/UserMapper.xml" />
<!-- <package name="com.yxhweb.mappers" /> -->
</mappers>
</configuration>
4.编写UserMapper.xml文件
<?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="user">
<!-- 添加 -->
<insert id="add" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="user">
INSERT INTO t_user(NAME,PASSWORD,telPhone,email) VALUES(#{name},#{password},#{telPhone},#{email})
</insert>
<!-- 删除 -->
<insert id="deleteById" parameterType="int" >
delete from t_user where id=#{id}
</insert>
<!-- 根据id查询 -->
<!-- 当传入的参数为一个是id的名称随便写,如#{xxxxx}
resultType:使用了别名的方式,如果使用package的方式,对应实体的名称,首字母小写
-->
<select id="getById" parameterType="int" resultType="user">
select id,name,password,telPhone,email from t_user where id=#{id}
</select>
<!--
resultMap:若表的列名(别名)与实体类的属性名不一致,就不能使用resultType,此时使用resultMap元素来做列名与属性名之间的映射
-->
<!-- 学生实体的属性与学生列表名的映射 -->
<resultMap id="UserResultMap" type="user">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="password" column="password"/>
<result property="telPhone" column="telPhone"/>
<result property="email" column="email"/>
</resultMap>
<select id="getById2" parameterType="int" resultMap="UserResultMap">
select id,name,password,telPhone,email from t_user where id=#{id}
</select>
<!-- 根据id修改 -->
<update id="update" parameterType="user">
update t_user set name=#{name},password=#{password},telPhone=#{telPhone},email=#{email} where id=#{id}
</update>
</mapper>
5.编写测试方法
package com.yxhweb.test;
import java.io.Reader;
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.After;
import org.junit.Before;
import org.junit.Test;
import com.yxhweb.entity.User;
public class UserTest {
SqlSession session=null;
@Before
public void setUp() throws Exception {
Reader reader=Resources.getResourceAsReader("mybatis-config.xml");
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);
session=factory.openSession();
}
@After
public void tearDown() throws Exception {
session.close();
}
/**
* 添加测试
*/
@Test
public void add() {
User user=new User("dd", "dd", "12345678912", "123456@163.com");
//调用sql语句时,使用 “命名空间.SQL语句id” 的形式
int count=session.insert("user.add",user);
session.commit();//提交事务
System.out.println("受影响的条数----->"+count+"返回插入的userId----->"+user.getId());
}
/**
* 删除测试
*/
@Test
public void delete() {
//调用sql语句时,使用 “命名空间.SQL语句id” 的形式
int count=session.delete("user.deleteById",8);
session.commit();//提交事务
System.out.println("受影响的条数----->"+count);
}
/**
*根据id查询测试
*/
@Test
public void getById() {
//调用sql语句时,使用 “命名空间.SQL语句id” 的形式
User user=session.selectOne("user.getById",1);
System.out.println("查询到的结果"+user.getName());
}
/**
* 使用resultMap的方式
*/
@Test
public void getById2() {
//调用sql语句时,使用 “命名空间.SQL语句id” 的形式
User user=session.selectOne("user.getById2",1);
System.out.println("查询到的结果"+user.getName());
}
/**
* 修改测试
*/
@Test
public void update() {
User user=session.selectOne("user.getById2",1);
user.setName("aa1");
int count=session.update("user.update",user);
session.commit();
System.out.println("查询到的结果"+count);
}
}
源码地址:链接:http://pan.baidu.com/s/1jHrcPWq 密码:v45h
- 大小: 14.7 KB
- 大小: 14.7 KB
分享到:
相关推荐
mybatis-generic-crud MyBatis 模块说明使用 ... 缺点(次要)是,是的,您仍然需要创建占位符映射器接口,并且仍然需要创建映射器 xml 文件和其中的相应 CRUD sql。 好处是,如果遵循将映射器方法命名为与Gen
MyBatis是一个Java持久层框架,可将SQL语句与Java对象进行映射,简化了数据库操作。MyBatis提供了简单易用的API,可以将复杂的数据库操作封装成简单的CRUD操作。 MyBatis-Plus是MyBatis的增强版,提供了更多的便捷...
MyBatis是一个优秀的基于Java的持久层框架,它内部封装了JDBC,使得开发者只需要关注SQL语句本身,而无需处理加载驱动、创建连接、创建Statement等繁琐的过程。MyBatis的主要特点和功能如下: 简单易用:通过XML...
- Map映射文件:4个,用于MyBatis的SQL映射; - JavaScript脚本:4个,实现了页面的动态交互; - JSP页面:3个,构成了用户界面; - Markdown文件:1个,可能包含项目说明或使用指南; - SQL脚本:1个,用于初始化...
MyBatis提供了定制化SQL、存储过程以及高级映射的支持,它要求开发者手动编写SQL语句,并使用注解或XML文件进行配置。相比之下,MyBatis Plus则提供了更为丰富的功能,如自动注入基本CRUD操作、强大的条件构造器、...
mybatis框架总结,以xmind导航图的形式总结,内容包括Mybatis框架概述、CRUD操作、关联映射、动态SQL、缓存配置、其他配置、注解、Spring集成Mybatis。
v0.5 - 为实体类定义别名,简化sql映射xml文件中的引用 v0.6 - 解决字段名与实体类属性名不相同的冲突 v0.7 - MyBatis中使用association标签来解决一对一的关联查询 v0.8 - MyBatis中使用collection标签来解决一对多...
mybatis看这一篇就够了,MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置...
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 ...
Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行...
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。通过本文给大家介绍Mybatis实现增删改查(CRUD)实例代码 ,需要的朋友参考下
MyBatis框架,MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生...
基于MyBatis拦截器实现主从数据源的动态切换 支持类、方法级别添加注解 SwitchDataSource 来手动切换目标数据源 可实现 DynamicDataSourceStrategy 接口并自定义动态数据源选择策略。默认提供轮询、随机两种 集成...
全注解MyBatis开发,没有任何mapper文件,一切sql 映射都用代码实现,全程无xml配置,对xml编写mapper有恐惧症的人的福音。 提供双向生成功能: 实体类自动生成数据库表,全过程不需要任何SQL语句,所有表自动生成 ...
2. 第一个MyBatis程序 3. 基于接口的实现 4. MyBatisUtil工具类 5. CRUD操作 6. 手动映射 7.多参数查询 8.动态SQL 9.多表关系映射 10.代码生成器mybatis-generator 11.分页插件PageHelper 教学全程采用...
完成以上工作后执行测试类[TpOpTasktransServiceImplTest.java]对应的CRUD方法就可以对表进行增删查改操作了,如果遇到类似于 格式化字符串不匹配的异常时,需要修改一下映射的xml文件使用to_date 或 to_char进行...
II、编写mybatis核心配置文件(极其重要,已被一个小坑坑了,要小心)III、创建SqlSessionFactory,以及获得SqlSessionIV、创建实例类V、编写sql语句的映射文件最后测试:二、基本的crud操作crud实现内容三、优化配置...
MyBatis是一个优秀的Java ORM框架,本课程从MyBatis环境搭建讲起,详细讲述的MyBatis的CRUD操作、接口编程、SessionFactory、全局配置、关联映射、动态SQL、缓存和逆向工程等内容。
MyBatis是一个优秀的Java ORM框架,本课程从MyBatis环境搭建讲起,详细讲述的MyBatis的CRUD操作、接口编程、SessionFactory、全局配置、关联映射、动态SQL、缓存和逆向工程等内容。