Mybatis入门 操作MySQL DEMO
来源:互联网 发布:淘宝三颗心要多少好评 编辑:程序博客网 时间:2024/06/06 00:56
简介
Mybatis 是对数据库操作进行封装的一个框架。
Mybatis依赖包 - mybatis-3.2.8.jar
mysql驱动包 - mysql-connector-java-5.1.29.jar
demo 下载
数据库准备
- 新建数据库 db_ke
- 新建数据表 user
项目结构
- 新建Java Project
添加依赖包
- 新建文件夹lib,并把mybatis包和mysql驱动包拷贝进去
- 分别在包上 右击 -> Build Path -> Add to Build Path。
新建包
- com.wangshike.config
- com.wangshike.mapper
- com.wangshike.pojo
- config用来放置所需的 配置文件;
- mapper用来放置 SQL映射文件;
- pojo用来放置实体类,还可以叫model、bean
实体类
pojo包下新建 实体类 User.java
- 实体类字段类型要与数据表相对应
User.java 代码:
package com.wangshike.pojo;public class User { private int userID; private String userName; 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; } @Override public String toString() { return "id:"+userID+" name:"+userName; }}
SQL 映射文件
mapper包下新建 SQL映射文件 UserMapper.xml
- insert、delete、update、select四个标签提供相应的数据操作
- parameterType 为传入参数,通过 #{属性名} 取值
- resultType 为返回参数
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"><!-- 指定唯一的namespace,惯例是包名+文件名--><mapper namespace="com.wangshike.mapper.UserMapper"> <!-- 增添 --> <insert id="add" parameterType="User" > insert into user(id, name ) values (#{userID}, #{userName}) </insert> <!-- 删除 --> <delete id="delete" parameterType="int" > delete from user where id=#{userID} </delete> <!-- 更新--> <update id="update" parameterType="User" > update user set name=#{userName} where id=#{userID} </update> <!-- 查询--> <select id="search" parameterType="int" resultType="User"> select id as userID, name as userName from user where id=#{userID} </select> <!-- 查询 全部 此处返回List<User> --> <select id="searchAll" resultType="User"> select id as userID, name as userName from user </select></mapper>
Mybatis 配置文件
config包下新建 配置文件 mybatis.xml
<typeAliases>
配置 实体类的昵称,供mapper.xml文件使用<environments>
配置 mysql 数据库连接信息<mappers>
配置 数据库操作文件配置文件标签顺序必须是下面顺序:
propertiessettingstypeHandlersobjectFactoryobjectWrapperFactorypluginsenvironmentsdatabaseIdProvidermappers
mybatis.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> <typeAliases> <!-- type就是完整实体类名,mapper.xml可以直接使用User,而不必书写完整路径com.wangshike.pojo.User --> <typeAlias type="com.wangshike.pojo.User" alias="User"/> </typeAliases> <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/db_ke" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <!-- 关联映射文件 --> <mapper resource="com/wangshike/mapper/UserMapper.xml"/> </mappers></configuration>
测试类
com.wangshike包下新建 测试类 Test1.java
- 实体类字段类型要与数据表相对应
- 测试 插入一条记录,结果返回1,代表插入成功。
Test1.java 代码:
package com.wangshike;import java.io.IOException;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.wangshike.pojo.User;public class Test1 { public static void main(String[] args) throws IOException { //使用类加载器加载mybatis的配置文件(同时加载关联的映射文件) InputStream is = Test1.class.getClassLoader() .getResourceAsStream("com/wangshike/config/mybatis.xml"); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //创建能执行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); //映射sql的标识字符串 String statement = "com.wangshike.mapper.UserMapper.add"; User user = new User(); user.setUserID(11); user.setUserName("test"); //执行查询返回一个唯一user对象的sql int i = session.insert(statement, user); System.out.println("结果:"+i); }}
接口文件
mapper包下新建 接口文件 UserMapper.java
- 一定要和SQL映射文件命名和路径一致 (UserMapper.xml)
- 提供的方法要和SQL映射文件里的配置一致
UserMapper.java 代码:
package com.wangshike.mapper;import java.util.List;import com.wangshike.pojo.User;public interface UserMapper { public boolean add(User user); public boolean delete(int userID); public boolean update(User user); public User search(int userID); public List<User> searchAll();}
测试类
测试类Test1.java 修改
Test1.java 代码:
package com.wangshike;import java.io.IOException;import java.io.InputStream;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.wangshike.mapper.UserMapper;import com.wangshike.pojo.User;public class Test1 { public static void main(String[] args) throws IOException { //使用类加载器加载mybatis的配置文件(同时加载关联的映射文件) InputStream is = Test1.class.getClassLoader() .getResourceAsStream("com/wangshike/config/mybatis.xml"); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //创建能执行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); User user = new User(); user.setUserID(12); user.setUserName("wnagshike"); //会去UserMapper.class的目录下查找UserMapper.xml,并匹配方法 UserMapper mapper = session.getMapper(UserMapper.class); System.out.println("----------------添加测试----------------"); boolean addState = mapper.add(user); System.out.println("addstate:"+addState); System.out.println("----------------更新测试----------------"); user.setUserName("wsk"); boolean updateState = mapper.update(user); System.out.println("updatestate:"+updateState); System.out.println("----------------查询测试----------------"); User resultUser = mapper.search(12); System.out.println("resultUser:"+resultUser.toString()); System.out.println("----------------查询测试----------------"); List<User> userList = mapper.searchAll(); System.out.println("size:"+userList.size()); for (int i = 0; i < userList.size(); i++) { System.out.println("resultUser:"+userList.get(i).toString()); } }}
阅读全文
0 0
- Mybatis入门 操作MySQL DEMO
- 【Spring+MyBatis+MySQL实战入门】一、MyBatis操作入门
- MyBatis入门demo
- MyBatis入门demo
- springMVC + Mybatis +Mysql demo
- Spring Boot+Mybatis 入门Demo
- 【MySQL】事务入门demo
- Demo:C++操作MySql
- mybatis入门操作
- redis 入门级操作----demo
- Mybatis 3.2.7 简单入门Demo
- Mybatis 3.2.7 简单入门Demo
- 【web】mybatis入门详解,基础案例demo
- 一个简单的mybatis入门demo
- 一个简单的mybatis入门demo
- Maven+SpringMVC+Mybatis整合入门Demo
- 入门demo---Mybatis学习笔记(三)
- 入门demo---Mybatis学习笔记(三)
- 双轨迹传感器巡线
- [编程题] 偶串
- 前端表单验证常用的15个JS正则表达式
- F A ngq
- spring cloud eureka 参数配置
- Mybatis入门 操作MySQL DEMO
- NYOJ 2 括号匹配问题
- win10系统dos界面解决中文乱码问题
- 多表查询(二)
- how to use MongoDB Java driver in your env
- Re库的match对象
- 单例模式
- Ajax总结篇
- 强化学习