数据库结构代码
/*
Navicat MySQL Data Transfer
Source Server : 本地连接
Source Server Version : 50540
Source Host : localhost:3306
Source Database : test
Target Server Type : MYSQL
Target Server Version : 50540
File Encoding : 65001
Date: 2019-12-03 15:45:35
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', '18', 'test1@baomidou.com');
INSERT INTO `user` VALUES ('2', '20', 'test2@baomidou.com');
INSERT INTO `user` VALUES ('3', '28', 'test3@baomidou.com');
INSERT INTO `user` VALUES ('4', '21', 'test4@baomidou.com');
INSERT INTO `user` VALUES ('5', '24', 'test5@baomidou.com');
INSERT INTO `user` VALUES ('6', '18', 'uhndndndn@163.com');
INSERT INTO `user` VALUES ('7', '18', 'uhndndndn@163.com');
INSERT INTO `user` VALUES ('8', '18', 'uhndndndn@163.com');
INSERT INTO `user` VALUES ('9', '18', 'uhndndndn@163.com');
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test.mybatis</groupId>
<artifactId>TestMybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Mybatis测试项目</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<mybatis.version>3.5.2</mybatis.version>
<mysql.version>5.1.25</mysql.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.mod4j.org.eclipse.xtext</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
</dependency>
<!--数据库-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies>
</project>
提取成工具类
package com.mybatis.utils;
import jdk.internal.util.xml.impl.Input;
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 java.io.InputStream;
/**
* 工具类
*/
public class MybatisUtils {
static SqlSessionFactory sessionFactory;
//在静态区实例化
static {
//读取配置文件
try {
InputStream build = Resources.getResourceAsStream("mybatis-config.xml");
//得到SqlSessionFactory
sessionFactory = new SqlSessionFactoryBuilder().build(build);
} catch (Exception e) {
}
}
/**
* 打开SqlSession
*
* @return
*/
public static SqlSession openSeesion() {
return sessionFactory.openSession();
}
/**
* 提交并关闭
*
* @param sqlSession
*/
public static void close(SqlSession sqlSession) {
//提交事务
sqlSession.commit();
//关闭session
sqlSession.close();
}
}
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>
<!--配置日志-->
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/test?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&autoReconnect=true"/>
<property name="username" value="root"/>
<property name="password" value="123123"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.mybatis.mapper"/>
</mappers>
</configuration>
实体User
package com.mybatis.entity;
public class User {
private Long id;
private Integer age;
private String email;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public User() {
}
public User( Integer age, String email) {
this.age = age;
this.email = email;
}
public User(Long id, Integer age, String email) {
this.id = id;
this.age = age;
this.email = email;
}
@Override
public String toString() {
return super.toString();
}
}
接口Service
package com.mybatis.service;
import com.mybatis.entity.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
public interface UserService {
List<User> selectUser();
int insert(User user);
int update(User user);
int delete(Long id);
}
工具类使用,接口实现Impl
package com.mybatis.service.impl;
import com.mybatis.entity.User;
import com.mybatis.service.UserService;
import com.mybatis.utils.MybatisUtils;
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 java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class UserServiceImpl implements UserService {
@Override
public List<User> selectUser() {
List<User> userList = new ArrayList<>();
SqlSession sqlSession = MybatisUtils.openSeesion();
userList = sqlSession.selectList("com.mybatis.mapper.UserMapper.selectUser");
sqlSession.commit();
sqlSession.close();
return userList;
}
}
mapper代码
package com.mybatis.mapper;
import com.mybatis.entity.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
public interface UserMapper {
public List<User> selectUser();
public int insert(User user);
public int update(User user);
public int delete(Long id);
}
mapper.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="com.mybatis.mapper.UserMapper">
<select id="selectUser" resultType="com.mybatis.entity.User">
select * from user
</select>
<insert id="insert" parameterType="com.mybatis.entity.User">
insert into user(id,age,email)values(#{id},#{age},#{email})
</insert>
<update id="update" parameterType="com.mybatis.entity.User">
update user set age=#{age},email=#{email} where id=#{id}
</update>
<delete id="delete" parameterType="java.lang.Long">
delete form user where id=#{id})
</delete>
</mapper>
测试代码
public class Test {
public static void main(String[] args) {
UserService userService = new UserServiceImpl();
User user=new User(18,"779986181@qq.com");
userService.insert(user);
}
}