mybatis(单表增删改查)

(mybatis注意各个文件的映射问题)

用到的t_user数据库脚本:


-- 导出 mybatis 的数据库结构
CREATE DATABASE IF NOT EXISTS `mybatis` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `mybatis`;
-- 导出 表 mybatis.t_user 结构
CREATE TABLE IF NOT EXISTS `t_user` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`nickname` varchar(50) DEFAULT NULL,
`type` tinyint(4) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

MyBatisUtil助手类


package edu.hhxy.btais.util;

import java.io.IOException;
import java.io.InputStream;
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 MyBatisUtil {
private static SqlSession session = null;

public static SqlSession createSeqSession() {
try {
// 1、创建配置文件(mybatis-config.xml)的输入流
InputStream is = Resources
.getResourceAsStream("mybatis-config.xml");
// 2、创建SQLSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder()
.build(is);
// 3、创建SQLSessioin
session = factory.openSession();
} catch (IOException e) {
e.printStackTrace();
}
return session;
}

public static void closeSeqSession(SqlSession sqlSession) {
try {
sqlSession.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
sqlSession = null;
}
}
}

User.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="edu.hhxy.btais.User">
<insert id="add" parameterType="User">
insert into t_user
(username,password,nickname,type)
value(#{username},#{password},#{nickname},#{type})
</insert>
<update id="update" parameterType="User">
update t_user set
password=#{password},nickname=#{nickname},type=#{type} where id=#{id}
</update>
<delete id="delete" parameterType="int">
delete from t_user where
id=#{id}
</delete>
<select id="load" parameterType="int" resultType="User">
select * from
t_user where id=#{id}
</select>

<select id="list" resultType="User">
select * from t_user
</select>
</mapper>

src/jdbc.properties


username=root
password=root
url=jdbc:mysql://localhost:3306/mybatis
driver=com.mysql.jdbc.Driver

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 resource="jdbc.properties" />
<typeAliases>
<!--把edu.hhxy.btaisUser类都自动映射为User -->
<typeAlias type="edu.hhxy.btais.User" alias="User" />
<!-- 把edu.hhxy.btais所有类都自动映射 -->
<package name="edu.hhxy.btais" />
</typeAliases>
<!-- 在properties之后加上typeAliases -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置mybatis的pooled的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="edu/hhxy/btais/User.xml" />
</mappers>
</configuration>

FirstMybatisTest.java(JUNIT测试)


package edu.hhxy.btais;

import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import edu.hhxy.btais.util.MyBatisUtil;

public class FirstMybatisTest {
@Test
public void TestAll() {
addTest();
updateTest();
deleteTest();
loadTest();
listTest();
}

@Test
public void addTest() {
SqlSession session = null;
try {
session = MyBatisUtil.createSeqSession();
User u = new User();
for (int i = 0; i < 10; i++) {
u.setNickname("孙悟空");
u.setPassword("123");
u.setType(0);
u.setUsername("wukong");
session.insert("edu.hhxy.btais.User.add", u);
}
session.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
MyBatisUtil.closeSeqSession(session);
}
}

@Test
public void updateTest() {
SqlSession session = null;
try {
session = MyBatisUtil.createSeqSession();
User u = new User();
u.setNickname("齐天大圣孙悟空");
u.setPassword("123");
u.setType(0);
u.setId(106);
u.setUsername("wukong");
session.update("edu.hhxy.btais.User.update", u);
session.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
MyBatisUtil.closeSeqSession(session);
}
}

@Test
public void deleteTest() {
SqlSession session = null;
try {
session = MyBatisUtil.createSeqSession();
User u = new User();
u.setId(105);
session.delete("edu.hhxy.btais.User.delete", u);
session.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
MyBatisUtil.closeSeqSession(session);
}
}

@Test
public void loadTest() {
SqlSession session = null;
try {
session = MyBatisUtil.createSeqSession();
User u = (User) session.selectOne(User.class.getName() + ".load",
5);
System.out.println(u.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
MyBatisUtil.closeSeqSession(session);
}
}

@Test
public void listTest() {
SqlSession session = null;
try {
session = MyBatisUtil.createSeqSession();
List<User> us = session.selectList(User.class.getName() + ".list",
null);
System.out.println(us.size());
} catch (Exception e) {
e.printStackTrace();
} finally {
MyBatisUtil.closeSeqSession(session);
}
}
}

运行FirstMybatisTest.java之前,数据库

运行junit

运行后数据库

源代码下载:http://download.csdn.net/detail/chenwei1510347223/7331529

mybatis(单表增删改查),布布扣,bubuko.com

时间: 2024-10-04 21:18:59

mybatis(单表增删改查)的相关文章

mybatis(单表增删改查useMapper版)

数据库脚本(注意测试时先add-->load-->update-->delete-->list)UserMapper版 -- -------------------------------------------------------- -- 主机: 127.0.0.1 -- 服务器版本: 5.5.36-MariaDB - mariadb.org binary distribution -- 服务器操作系统: Win32 -- HeidiSQL 版本: 8.0.0.4396 --

MyBatis单表增删改查--XML实现

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 sessionfactory. 2.

使用CI操作oracle 10g的单表增删改查

<?php if (!defined('BASEPATH'))    exit('No direct script access allowed'); class UseOra extends CI_Controller{ public function index()    {        echo '欢迎使用测试CI使用Oracle 10g 的功能,您可以在地址栏中使用如下的函数参数:<br>';        echo '=============================

再说“使用CI操作oracle 10g的单表增删改查”

--Control中的UseOra.php <?php if (!defined('BASEPATH'))    exit('No direct script access allowed'); class UseOra extends CI_Controller{ public function index()    {        echo '欢迎使用测试CI使用Oracle 10g 的功能,您可以在地址栏中使用如下的函数参数:<br>';        echo '=======

Mybatis实现单表增删改查操作

mybatis是对持久层进行了封装.mybatis文档地址:https://mybatis.org/mybatis-3/zh/index.html 下面实现单表的增删改查操作. 1.新建maven项目命名为mybatis.并在pom.xml中引入相关依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"

快速开发:单表增删改查

EOS快速开发提供了一键生成代码向导,通过功能向导可生成JSP页面.以及业务逻辑代码. 下面就以单表的简单操作为例,介绍EOS快速开发. 在Web页面上展现数据库中的一张表,实现了对单表的数据库查询.增加与删除功能操作,并且实现了分页查询,效果如下图所示. 一.效果图 1. 查询与结果效果图 2. 录入与修改表单效果图 二.创建数据模型 1. 右键点击"资源管理器"视图中,用户创建的构件包下的"数据/数据模型"节点,选择[创建/数据集]菜单,如下图所示,创建一个名为

django orm 单表增删改查

一 简单增删改查 1.增 User.objects.create(name='Alan', age=10, birthday='2018-08-08') user = User(name='Alan', age=10, birthday='2018-08-08') user.save() 2.查询 # 操作的结果拥有是一个list users = User.objects.filter(name='Owen') # 只能操作有且只有一条数据记录 user = User.object.set(id

MySQL初步理解,简易单表增删改查

什么是数据库? 存储数据的仓库,本质是一个文件系统,封装了算法和文件之前数据的存储模式 阶段1:集合 数组 变量 缺点:数据存储在内存中,不能实现数据的持久化存储 阶段2:IO流 结合文件 .txt .xml.... 优点:数据存储在磁盘上,数据可以实现持久化存储 缺点:数据操作时,算法必须自己实现,但是相当一部分算法实现重复 阶段3:数据库 优点:使用专门的程序封装了算法部分 数据库与IO比较:算法 + 文件存储数据数据库结构: 算法部分:.exe程序 lib文件夹下 文件存储部分:以文件和文

Django单表增删改查-前后端不分离

获取到models中创建表的类,直接使用python语句可以实现增删改查,不需要使用sql语句 1,增 1 from user.models import Category 2 # 导入表 注意这里导入的是 user.models,如果dj_test不是最外层目录,就要用 dj_test.user.models 3 # 新增 4 c_obj=Category.objects.create(name='oracle1') 5 # 新增出来的就是一个对象,相当于类实例化 6 print(c_obj)