【知了堂学习笔记】myBatis实现增删查改
来源:互联网 发布:杨千嬅 唱功 知乎 编辑:程序博客网 时间:2024/06/06 19:54
请关注“知了堂学习社区”http://www.zhiliaotang.com/portal.php
1.mybatis简介
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。mybatis最为强大的特性应该就是动态sql,将在后面的学习笔记中介绍。
2.使用mybatis
2.1 下载mybatis
mybatis最初的名称为ibatis,从apache到googlecode再到github。所以我们现在下载都是在GitHub进行jar包、文档、源码的下载。
github网站为:https://github.com/mybatis/
选择mybatis-3
然后将页面拉到最下面选择download latest
3. 创建数据库
我的数据库user表结构如下:
DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `userId` int(11) DEFAULT NULL, `userName` varchar(255) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, `phone` varchar(255) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records of user-- ----------------------------INSERT INTO `user` VALUES ('2', 'zhiliaotang', 'B7-2F', '456456456');INSERT INTO `user` VALUES ('3', '1223', '123', '123');INSERT INTO `user` VALUES ('3', 'ljx', 'sccd', '123456');INSERT INTO `user` VALUES ('5', 'ljx', 'sccd', '123456');
4. 构建你的myBatis项目
4.1 导入mybatis.jar、mysql驱动包。
项目目录结构如下
4.2 创建user类
User.java
package org.myBatis.domain;public class User { private int userId; private String userName; private String address; private String phone; public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } /** *重写toString方法 */ @Override public String toString() { // TODO Auto-generated method stub return "User [id=" + userId + ", name=" + userName + ", address=" + address + ", phone = "+phone+"]"; }}
4.3 创建核心配置文件
mybatis依赖的配置文件有:conf.xml和mapper.xml,其中xml文件的头可以去mybatis官网(http://www.mybatis.org/mybatis-3/zh/index.html)查看入门案例。
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 default="development"> <environment id="development"> <!-- 事务--> <transactionManager type="JDBC"></transactionManager> <!-- 数据源--> <dataSource type="POOLED"> <!-- 连接驱动 --> <property name="driver" value="com.mysql.jdbc.Driver"/> <!-- url--> <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> <!-- 数据库用户名--> <property name="username" value="root"/> <!-- 数据库密码--> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!-- 映射文件--> <mappers> <mapper resource="org/myBatis/mapping/UserMapper.xml"/> </mappers></configuration>
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"><!-- user类的映射 namespace:用于定位sql语句 --><mapper namespace="org.myBatis.mapping.user"> <!-- 查询语句 id:用于定位sql语句 parameterType:传入参数类型 resultType:返回参数类型 --> <select id="findById" parameterType="int" resultType="org.myBatis.domain.User"> select * from user where userId = #{userId} </select> <!-- 新增语句 --> <insert id="insert" parameterType="org.myBatis.domain.User"> insert into user values(#{userId},#{userName},#{address},#{phone}) </insert> <!-- 删除语句 --> <delete id="delete" parameterType="int"> delete from user where userId = #{userId} </delete> <!-- 修改语句 --> <update id="update" parameterType="org.myBatis.domain.User" > update user set userName = #{userName} , address = #{address} , phone = #{phone} where userId = #{userId} </update></mapper>
4.4 测试
Test.java
package org.myBatis.test;import java.io.InputStream;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.myBatis.domain.User;public class Test { public static void main(String[] args) { // TODO Auto-generated method stub // 1.读取配置文件Conf.xml InputStream in = Test.class.getClassLoader().getResourceAsStream("org/myBatis/mapping/Conf.xml"); // 2.创建连接工厂 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in); // 3.获取连接 SqlSession session = ssf.openSession(); /* * 新增 insert(session); 删除 delete(session); 查询 query(session); 修改 update(session);*/ } public static void insert(SqlSession session){ // 4.定位sql语句 String statement = "org.myBatis.mapping.user.insert"; User user = new User(); user.setUserId(5); user.setUserName("ljx"); user.setAddress("sccd"); user.setPhone("123456"); // 5.执行sql语句 int result = session.insert(statement,user); // 6.提交事务 session.commit(); // 7.获取结果 System.out.println(result); } public static void delete(SqlSession session){ // 4.定位sql语句 String statement = "org.myBatis.mapping.user.delete"; // 5.执行sql语句 int result = session.delete(statement,1); // 6.提交事务 session.commit(); // 7.获取结果 System.out.println(result); } public static void query(SqlSession session){ // 4.定位sql语句 String statement = "org.myBatis.mapping.user.select"; // 5.执行sql语句 User user = session.selectOne(statement,1); // 6.输出查询结果 System.out.println(user); } public static void update(SqlSession session){ // 4.定位sql语句 String statement = "org.myBatis.mapping.user.update"; User user = new User(); user.setUserId(2); user.setUserName("zhiliaotang"); user.setAddress("B7-2F"); user.setPhone("456456456"); // 5.执行sql语句 int result = session.update(statement,user); // 6.提交事务 session.commit(); // 7.获取结果 System.out.println(result); }}
注:新增,删除,修改需要对事务进行提交,才能正确执行。
阅读全文
0 0
- 【知了堂学习笔记】myBatis实现增删查改
- 【知了堂学习笔记】mybatis通过代理实现增删改查
- Mybatis学习笔记三:实现增删查改
- Mybatis-实现增删改查
- MyBatis实现增删改查
- mybatis实现增删查改
- mybatis学习笔记二(实现数据的增删改查)
- MyBatis学习笔记(三)---增删改查
- mybatis学习笔记(七)增删改查
- mybatis学习笔记(二)增删改查
- mybatis学习笔记(二) --- 熟悉增删查改
- Mybatis学习笔记-第一个增删改查的程序
- mybatis-springmvc+mybatis实现增删改查
- Mybatis学习(3)实现数据的增删改查
- Mybatis入门学习三:实现数据的增删改查
- MyBatis第二讲学习笔记 ,使用MyBatis对表执行增删改查操作——基于注解的实现
- mybatis ---- 实现数据的增删改查
- mybatis实现的增删改查例子
- SwipyRefreshLayout+recyclerview
- TCP和UDP的最完整的区别
- repo的介绍
- 上传图片
- B-Tree / B+Tree 结构以及MySQL索引
- 【知了堂学习笔记】myBatis实现增删查改
- linux:破解navicat
- Tablayout
- Linux:mysql数据库的热备份,主从数据库搭建
- java集合list
- Hash Table -- Leetcode problem349. Intersection of Two Arrays
- PHP实现阶乘的原理与代码分析
- 标准C语言 IO
- 判断Bigdecimal类型是否等于0的方法