Mybatis框架基于注解的方式,实对数据现增删改查
编写Mybatis代码,与spring不一样,不需要导入插件,只需导入架包即可;
在lib下 导入mybatis架包:mybatis-3.1.1.jar
mysql驱动架包:mysql-connector-java-5.1.6-bin.jar
在src目录下建立xml配置文件:conf.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:开发模式
work:工作模式
default="development",id="development",两个的属性值必须一致
-->
<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:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="lxn123"/>
</dataSource>
</environment>
</environments> <!-- 在配置文件中 关联包下的 接口类-->
<mappers>
<mapper class="com.atguigu.mybatis.test3.UserMapper"/>
</mappers>
</configuration>
这是基于注解的方式,所以建立一个接口,在定义的方法上配置上应有的注解,注解中含有sql语句,需要提示的是这个接口不需要类去实现它
package com.atguigu.mybatis.test3; import java.util.List; import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update; import com.atguigu.mybatis.test.User; public interface UserMapper { /*
* 这是基于注解的映射方式,实现对数据的增删改查,将sql语句直接写在注解的括号中
* 这是一个接口,其不需要类去实现它
* 下边分别是插入,删除,修改,查询一个记录,查询所有的记录
* */ @Insert("insert into users(name,age) values(#{name},#{age})")
public void insertT(User user); @Delete("delete from users where id=#{id}")
public void deleteById(int id); @Update("update users set name=#{name},age=#{age} where id=#{id}")
public void updateT(User user); @Select("select * from users where id=#{id}")
public User getUser(int id); @Select("select * from users")
public List<User> getAllUsers();
}
封装列:User,这儿只写属性,getter和setter,tostring就不写了
private int id;
private String name;
private int age;
建立MybatisUtils类,有一个方法,加载mybatis和构建sqlSession
package com.atguigu.mybatis.test; import java.io.InputStream; import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MybatisUtils {
public static SqlSessionFactory getFactory(){
String resource="conf.xml"; //加载mybatis 的配置文件(它也加载关联的映射文件)
InputStream is=MybatisUtils.class.getClassLoader().getResourceAsStream(resource); //构建sqlSession 的工厂
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
return factory;
}
}
实现增删改查的方法
package com.atguigu.mybatis.test3; import java.util.List; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test; import com.atguigu.mybatis.test.MybatisUtils;
import com.atguigu.mybatis.test.User; public class UserMapperTest { @Test
//插入数据
public void testInsert(){
SqlSessionFactory factory=MybatisUtils.getFactory();
SqlSession session=factory.openSession(true);
//使用反射的方法
UserMapper mapper=session.getMapper(UserMapper.class);
mapper.insertT(new User(-1, "p", 4)); session.close();
} @Test
//删除数据
public void testDelete(){
SqlSessionFactory factory=MybatisUtils.getFactory();
SqlSession session=factory.openSession(true);
UserMapper mapper=session.getMapper(UserMapper.class);
mapper.deleteById(1);
session.close();
} @Test
//修改数据
public void testUpdate(){
SqlSessionFactory factory=MybatisUtils.getFactory();
SqlSession session=factory.openSession(true);
UserMapper mapper=session.getMapper(UserMapper.class);
mapper.updateT(new User(2, "jjjjj", 232));
session.close();
} @Test
//获取一条数据
public void testGetUser(){
SqlSessionFactory factory=MybatisUtils.getFactory();
SqlSession session=factory.openSession(true);
UserMapper mapper=session.getMapper(UserMapper.class);
User user=mapper.getUser(2);
session.close();
System.out.println(user);
} @Test
//获取所有数据
public void testGetAllUsers(){
SqlSessionFactory factory=MybatisUtils.getFactory();
SqlSession session=factory.openSession(true);
UserMapper mapper=session.getMapper(UserMapper.class);
List<User> users=mapper.getAllUsers(); session.close();
System.out.println(users);
}
}
Mybatis框架基于注解的方式,实对数据现增删改查的更多相关文章
- SSM框架入门——整合SSM并实现对数据的增删改查功能(Eclipse平台)
一.搭建框架环境 整个项目结构如下: 搭建SSM步骤如下: (1)准备好三大框架的jar包,如图所示 (2)在Eclipse中创建一个web project ,并把这些jar包粘贴到lib文件夹中. ...
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...
- Mybatis学习笔记(二) 之实现数据库的增删改查
开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- Mybatis学习总结(二)—使用接口实现数据的增删改查
在这一篇中,让我们使用接口来实现一个用户数据的增删改查. 完成后的项目结构如下图所示: 在这里,person代表了一个用户的实体类.在该类中,描述了相关的信息,包括id.name.age.id_num ...
- 基于vue-easytable实现数据的增删改查
基于vue-easytable实现数据的增删改查 原理:利用vue的数据绑定和vue-easetable的ui完成增删改查 后端接口: 1.条件查询表中数据 http://localhost:4795 ...
- Mybatis实现数据的增删改查
Mybatis实现数据的增删改查 1.项目结构(使用maven创建项目) 2.App.java package com.GetcharZp.MyBatisStudy; import java.io.I ...
- 基于gin的golang web开发:mysql增删改查
Go语言访问mysql数据库需要用到标准库database/sql和mysql的驱动.标准库的Api使用比较繁琐这里再引入另一个库github.com/jmoiron/sqlx. go get git ...
- Android 利用xUtils框架实现对sqllite的增删改查
首先下载xUtils,下载地址:https://github.com/wyouflf/xUtils 把下载好的文件压缩,把里面的jar包拷进项目中如图所示: 这里新建一个User类进行测试增删改查 ...
随机推荐
- python jenkins-api,jira crowd. email-servers
jenkins user authentication: http://stackoverflow.com/questions/15411208/authenticate-jenkins-users ...
- 暗黑战神客户端(IOS和Android)打包教程
先说下遇到的严重问题: 1.暗黑战神的资源管理有2套流程,一套开发使用(Resources.Load),一套正式上线使用(AssetBundles, 流畅),而走AssetBundles流程的代码则有 ...
- AJAX的封装(包括跨域问题)
注意: 1.同域下支持get和post方法 2.跨域问题必须得到后台的支持 3.跨域只支持get方法 function AJAX(obj){ //做网络请求的时候,参数以"对象"的 ...
- Magento Connector: Error: Please check for sufficient write file permissions
请确保下面的文件是可写的: /path/to/your/magento-install/path/to/your/magento-install/downloader/path/to/your/mag ...
- JMeter学习-032-JMeter常见四种变量简介
在JMeter自动化测试脚本编写过程中,经常需要对测试脚本进行一些参数设置.例如,设置测试计划的全局变量(方便切换不同的测试环境).样本线程(HTTP请求等)的参数传递等. 通常,JMeter中常用的 ...
- windows update一直卡住:“正在此计算机上搜索更新”
参考:http://blog.163.com/smile_big/blog/static/35710579201611875333164/ 解决办法: 管理员运行cmd,输入以下命令 net stop ...
- centos6.4 挂载新盘并移动mysql数据目录
1 centos 挂载新盘并格式化 以vmware workstation12 中安装的centos6. 虚拟机为例进行演示 关机,添加硬盘 开机,格式化硬盘,并挂载 通过命令查看硬盘 fdisk – ...
- 分布式集群搭建(hadoop2.6.0+CentOS6.5)
摘要:之前安装过hadoop1.2.1集群,发现比较老了,后来安装cloudera(hadoop2.6.0),发现集成度比较高,想知道原生的hadoop什么样子,于是着手搭建一个伪分布式集群(三台), ...
- Webform 文件上传、 C#加图片水印 、 图片验证码
文件上传:要使用控件 - FileUpload 1.如何判断是否选中文件? FileUpload.FileName - 选中文件的文件名,如果长度不大于0,那么说明没选中任何文件 js - f.val ...
- opencv,图片遍历
//肤色提取,skinArea为二值化肤色图像 void skinExtract(const Mat &frame, Mat &skinArea) { Mat YCbCr; vecto ...