MyBatis的简单操作
这里将的是简单的增、删、改、查等基本操作
首先创建java项目,导入相应的依赖包,这里可以参考上一篇博客
1、添加数据
在jike.book.pojo包中,新建java类
JiKeUser.java:
package jike.book.pojo;
public class JiKeUser {
private int id;
private String userName;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
在jike.book.map中有:
MyBatisConfig.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> <!-- 定义别名 ,必须放在environments之前-->
<typeAliases>
<typeAlias alias="JiKeUser" type="jike.book.pojo.JiKeUser"/>
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC">
</transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/jikebook"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="jike/book/map/jikeUser.xml"/>
</mappers> </configuration>
jikeUser.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="/"> <select id="findById" parameterType="int" resultType="jike.book.pojo.JiKeUser">
select * from jikeUser where id=#{id}
</select> <insert id="insertUser" parameterType="JiKeUser" statementType="PREPARED"
keyProperty="id" useGeneratedKeys="true">
insert into JikeUser (userName,password) values(#{userName},#{password})
</insert>
</mapper>
新建测试类:
TestUpdate.java
package jike.book.test; import java.io.IOException;
import java.io.Reader; import jike.book.map.InterfaceJiKeUserMap;
import jike.book.pojo.JiKeUser; 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 TestUpdate { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{
/* 添加 */
JiKeUser jku = new JiKeUser();
jku.setUserName("jike001");
jku.setPassword("");
session.insert("insertUser",jku);
session.commit(); }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
} }
执行java测试类即可
2、修改
修改数据和添加数据差不多,在jikeUser.xml中添加
<update id="updateUser" parameterType="JiKeUser">
update JiKeUser set userName = #{userName},password=#{password}
where id=#{id}
</update>
然后将测试类改为:
package jike.book.test; import java.io.IOException;
import java.io.Reader; import jike.book.map.InterfaceJiKeUserMap;
import jike.book.pojo.JiKeUser; 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 TestUpdate { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{
/* 修改 */
JiKeUser jku2 = new JiKeUser();
jku2.setUserName("jike00100");
jku2.setPassword("");
jku2.setId();
session.update("updateUser", jku2); session.commit(); }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
} }
即可
3、删除
删除操作稍微有些不同,首先在jike.book.map中新建一个接口
InterfaceJiKeUserMap.java,采用注解方式
package jike.book.map;
import org.apache.ibatis.annotations.Delete;
public interface InterfaceJiKeUserMap {
@Delete("delete from JiKeUser where id=#{id}" )
public void deleteUser(Integer id);
}
在MyBatisConfig.xml中加入map映射
<mapper class="jike.book.map.InterfaceJiKeUserMap" />
然后修改测试类
package jike.book.test; import java.io.IOException;
import java.io.Reader; import jike.book.map.InterfaceJiKeUserMap;
import jike.book.pojo.JiKeUser; 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 TestUpdate { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{ /* 删除 */
InterfaceJiKeUserMap ijum = session.getMapper(InterfaceJiKeUserMap.class);
ijum.deleteUser();
session.commit(); }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
} }
即可
4、查询
查询比较麻烦,分为查询一条数据和查询多条数据
4.1 查询一条语句(两种方式:利用HashMap 和 利用 JiKeUser对象)
4.1.1 利用hashmap实现
在jikeUser.xml下添加语句
<select id="loginSelect" resultType="JiKeUser" parameterType="hashmap">
select * from JiKeUser where userName=#{userName} and password=#{password}
</select>
然后修改测试类
package jike.book.test; import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List; import jike.book.pojo.JiKeUser; 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 TestSelect { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{ /*
* 查询一条记录
* */ /* 利用HashMap */
HashMap<String,String> hm = new HashMap();
hm.put("userName", "jike00100");
hm.put("password", "");
JiKeUser temp = session.selectOne("loginSelect",hm);
if(temp!=null){
System.out.println("登陆成功!");
} }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
}
}
4.1.2 利用 JiKeUser对象
在jikeUser.xml下添加语句
<select id="login2" resultType="JiKeUser" parameterType="JiKeUser">
select * from JiKeUser where userName=#{userName} and password=#{password}
</select>
修改测试类:
package jike.book.test; import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List; import jike.book.pojo.JiKeUser; 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 TestSelect { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{ /*
* 查询一条记录
* */ /* 利用 JiKeUser对象 */
JiKeUser jku = new JiKeUser();
jku.setUserName("jike00100");
jku.setPassword("");
JiKeUser onetemp = session.selectOne("login2",jku);
if(onetemp!=null){
System.out.println("登陆成功");
} }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
}
}
4.2 查询多条数据(利用resultType 和 利用resultMap)
4.2.1 利用resultType
在jikeUser.xml下添加语句
<select id="selectJiKeUserList" resultType="JiKeUser">
select * from JiKeUser
</select>
修改测试类
package jike.book.test; import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List; import jike.book.pojo.JiKeUser; 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 TestSelect { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{ /*
* 查询多条记录
* */
/* 利用resultType */
List<JiKeUser> ap = session.selectList("selectJiKeUserList");
for(JiKeUser temp:ap){
System.out.println("用户名="+temp.getUserName()+"密码="+temp.getPassword());
} }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
}
}
4.2.2 利用resultMap
在jikeUser.xml下添加语句
<resultMap type="JiKeUser" id="JiKeUserMap">
<id property="id" column="id"></id>
<result property="userName" column="userName"/>
<result property="password" column="password"/>
</resultMap>
<select id="selectUsers" resultMap="JiKeUserMap">
select id,userName,password from JiKeUser
</select>
测试类:
package jike.book.test; import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List; import jike.book.pojo.JiKeUser; 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 TestSelect { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{ /*
* 查询多条记录
* */ /* 利用resultMap */
List<JiKeUser> ap1 = session.selectList("selectUsers");
for(JiKeUser temp:ap1){
System.out.println("用户名="+temp.getUserName());
}
}catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
}
}
MyBatis的简单操作的更多相关文章
- Mybatis框架简单使用
Mybatis框架简单使用 环境搭建 新建一个JavaWeb项目,在web\WEB-INF\创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及Mysql驱动包,junit4测试包等. ...
- 【MyBatis】MyBatis实现CRUD操作
1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CR ...
- Mybatis多表操作
一:引言 在学习完前面的mybatis基本语法后,大家都有个认知,这个Mybatis太强大了,比之前使用JDBC写方便多了,但是你们当初在使用原生JDBC写SQL查询的时候有没有遇到过多表查询呢?肯定 ...
- MyBatis学习01(初识MyBatis和CRUD操作实现)
1.初识MyBatis 环境说明: jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Junit 什么是M ...
- Mybatis实现简单的CRUD(增删改查)原理及实例分析
Mybatis实现简单的CRUD(增删改查) 用到的数据库: CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user` ...
- x01.MagicCube: 简单操作
看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
- GitHub学习心得之 简单操作
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本文对Github的基本操作进行了总结, 主要基于以下文章: http://gitre ...
- Linq对XML的简单操作
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
随机推荐
- linux 声音大小调整的命令
alsamixer 输入上面的命令 回车即可看到图形界面,界面如下 ┌──────────────────────────── AlsaMixer v1.0.27.1 ──────────────── ...
- There is already an open DataReader associated with this Connection which must be closed first
使用MVC4 EF Linq获取foreach列表循环的时候遇到了如下的问题:报错提示 There is already an open DataReader associated with this ...
- python面对对象编程------4:类基本的特殊方法__str__,__repr__,__hash__,__new__,__bool__,6大比较方法
一:string相关:__str__(),__repr__(),__format__() str方法更面向人类阅读,print()使用的就是str repr方法更面对python,目标是希望生成一个放 ...
- Android时间戳转换为标准Datetime(yyyy-MM-dd hh:mm:ss)格式
下列函数为实现过程,已经测试通过. /// <summary> /// Android时间戳转换为标准Datetime /// </summary> /// <param ...
- Vim+Taglist+Ctags(源码阅读).
终于搞定了,之前弄那么两天配置,都不成功. 需要软件: ctags taglist 1,ctags. 1)说明: 这个我就不演示了,我的RedHat5.5本身就有ctags. 2)验证ctags是否已 ...
- timestamp 正常日期转换成时间戳格式
select cast(sysdate as timestamp) "DATE" from dual select to_timestamp(to_date(sysdate, 'y ...
- oralce中exists not exists in not in对于NULL的处理
1. 先讨论 in 与 not in中存在NULL的情况, sql语句如下: 1 select 1 result1 from dual where 1 not in (2, 3); 2 3 4 s ...
- 一个CSS小测试
<!DOCTYPE html> <html> <head> <style type="text/css"> body{ margin ...
- 用Spring Boot零配置快速创建web项目(1)
一.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人 ...
- [转]简述volatile
volatile int i=10; int j = i; ... int k = i; volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执 ...