[转]mybatis 的简单使用
需要用到的包:(这里只是其中一个版本,其他的百度)
mysql-connector-java-5.1.6-bin
先看项目目录:
配置文件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>
- <!-- 用XML映射的时候必须配此项!指定mappers里面的返回值对应的实体类 -->
- <!-- <typeAliases>
- <typeAlias alias="User" type="com.miquan.mybatis.bean.User"/>
- </typeAliases> -->
- <!-- JDBC配置 -->
- <environments default="development">
- <environment id="development">
- <transactionManager type="JDBC"/>
- <dataSource type="POOLED"> <!--POOLED指的是:已经缓存的,即使用缓存-->
- <property name="driver" value="com.mysql.jdbc.Driver"/>
- <property name="url" value="jdbc:mysql://localhost:3306/weixinface"/>
- <property name="username" value="root"/>
- <property name="password" value=""/>
- </dataSource>
- </environment>
- </environments>
- <!-- mappers,每个实体类对应着一个xml -->
- <mappers>
- <mapper resource="com/miquan/mybatis/bean/User.xml"/>
- </mappers>
- </configuration>
实体类User.java:
- package com.miquan.mybatis.bean;
- public class User {
- private int id;
- private String userName;
- private String password;
- public User(int id, String userName, String password) {
- super();
- this.id = id;
- this.userName = userName;
- this.password = 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;
- }
- }
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">
- <!-- namespace对应着接口类 -->
- <mapper namespace="com.miquan.mybatis.inter.IUserOperation">
- <!-- <select id="selectById" parameterType="int" resultType="User">
- select * from User where id = #{id}
- </select> -->
- </mapper>
IUserOperation.java:
- package com.miquan.mybatis.inter;
- 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.miquan.mybatis.bean.User;
- public interface IUserOperation {
- @Select("select * from User where id = #{id}")
- public User selectById(int id);
- @Select("select * from User where userName = #{userName}")
- public List<User> selectUsers(String userName);
- @Insert("insert into User values(null, #{userName}, #{password})")
- public boolean addUser(User user);
- @Delete("delete from User where id = #{id}")
- public boolean delUser(int id);
- @Update("update User "
- + "set userName = #{userName}, "
- + "password = #{password} "
- + "where id = #{id}")
- public boolean updateUser(User user);
- }
注意:此处接口不支持多态。
(不知道为什么,用着就是不可以。。。方法名不能一样)
最后进行测试:Test.java:
- package com.miquan.mybatis.test;
- import java.io.InputStream;
- import java.util.List;
- 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 com.miquan.mybatis.bean.User;
- import com.miquan.mybatis.inter.IUserOperation;
- public class Test {
- static SqlSession session;
- public static void main(String[] args) {
- try {
- //获取session
- InputStream is = Resources.getResourceAsStream("mybatisconfig.xml");
- SqlSessionFactory sqlSessionFactory =
- new SqlSessionFactoryBuilder().build(is);
- session = sqlSessionFactory.openSession();
- //XML配置对应用法
- // User user = session.selectOne("com.miquan.mybatis.bean.UserDB.selectById", 1);
- // System.out.println(user.toString());
- //接口调用法
- //////注意:insert、delete和update方法调用之后必须commit才能真正的改变数据
- IUserOperation userOperation = session.getMapper(IUserOperation.class);
- //查
- // User user = userOperation.selectById(1);
- // System.out.println(user.toString());
- //查找List
- // List<User> users = userOperation.selectUsers("miquan");
- // System.out.println(users.size());
- //增
- // User user = new User();
- // user.setUserName("zhiquan");
- // user.setPassword("999");
- // userOperation.addUser(user);
- // session.commit();
- //删
- // userOperation.delUser(7);
- // session.commit();
- //改
- User user = new User(8, "qiantu", "shaxppp");
- userOperation.updateUser(user);
- session.commit();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- session.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- }
简单的增删查改可以实现了。
[转]mybatis 的简单使用的更多相关文章
- Mybatis框架简单使用
Mybatis框架简单使用 环境搭建 新建一个JavaWeb项目,在web\WEB-INF\创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及Mysql驱动包,junit4测试包等. ...
- MyBatis(1)-简单入门
简介 什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.My ...
- MyBatis 使用简单的 XML或注解用于配置和原始映射
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .My ...
- 单独使用MyBatis的简单示例
单独使用MyBatis的简单示例:mybaties-config.xml:MyBatis配置文件 <?xml version="1.0" encoding="UTF ...
- Mybatis的简单增删改查
刚开始学习Mybatis可以先看下官方文档,MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手工设置参数以及抽取结果集.MyBat ...
- Mybatis实现简单的CRUD(增删改查)原理及实例分析
Mybatis实现简单的CRUD(增删改查) 用到的数据库: CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user` ...
- Mybatis实现简单增删改查
Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- Mybatis的简单示例
首先新建一个JavaWeb项目并导入mybatis依赖的jar包,同时Mybatis是对数据库的操作所以我们需要在数据库中新建一个表user用来演示. 新建完表之后我们还需要建立相对应的实体类User ...
- MyBatis的简单操作
这里将的是简单的增.删.改.查等基本操作 首先创建java项目,导入相应的依赖包,这里可以参考上一篇博客 1.添加数据 在jike.book.pojo包中,新建java类 JiKeUser.java: ...
随机推荐
- python中multiprocessing模块
multiprocess模块那来干嘛的? 答:利用multiprocessing可以在主进程中创建子进程.Threading是多线程,multiprocessing是多进程. #该模块和Threadi ...
- Java中基于HotSpot虚拟机的垃圾收集器
名称 过程 优缺点 Serial 进行垃圾收集时,必须暂停其他所有的工作进程,直到它收集结束.是一个单线程收集器. Stop the world. 新生代收集器. 手工设置新生代的大小:-Xmn Ed ...
- Pythone3 sys模块
1.sys.argv 可以实现从程序外部向程序传递参数2.sys.exit() 程序中间退出,exit(0)正常退出,其他为异常退出3.sys.getdefaultencoding() 获取系统编码方 ...
- 【转】cve-2013-2094 perf_event_open 漏洞分析
cve-2013-2094是于2013年4月前后发现的linux kernel本地漏洞,该漏洞影响3.8.9之前开启了PERF_EVENT的linux系统.利用该漏洞,通过perf_event_ope ...
- Laravel 5.2 三、中间件、视图与 Blade 模板引擎
一.中间件 Laravel 的 HTTP 中间件提供了对路由的一层过滤和保护.下面模拟一下用中间件验证后台登录. 1. 创建中间件 cmd 窗口进入项目目录,使用 artisan 命令创建 php a ...
- Linux I2C(一)之常用的几种实例化(i2c_client ) 【转】
转自:http://blog.csdn.net/lugandong/article/details/48092397 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 前言 方式 ...
- Qualcomm platform, the commonly used parameters of charger and battery in device tree file
Platform MSM8917 PM8937 PMI8940 Parameters 1 battery charging voltage : qcom,float-voltage-mv = < ...
- Linux内核通知链分析【转】
转自:http://www.cnblogs.com/jason-lu/articles/2807758.html Linux内核通知链分析 1. 引言 Linux是单内核架构(monolithic k ...
- 1003: FFF团的情侣活动--课程作业--找出N个数字中唯一出现奇数次的数
1003: FFF团的情侣活动 Time Limit: 1 Sec Memory Limit: 2 MB Description 圣诞节快到了,Water作为大FFF团团长,组织许多对情侣进行电影院 ...
- 过渡&动画
进入/离开&列表过渡 概述 Vue在插入,更新或者移除Dom时,提供多种不同方式的应用过渡效果.包括以下工具 在css过渡和动画中自动应用class 可以配合使用第三方css动画库,如Anim ...