Commit f7fb8111 authored by zhuleizi's avatar zhuleizi

no message

parent 53573344
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="masterDetails">
<states>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.25794032" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>jdk8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.25794032" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>jdk8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.25794032" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>
\ No newline at end of file
# Default ignored files
# Default ignored files
/workspace.xml
\ No newline at end of file
homework
homework
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="homework" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="homework" target="1.8" />
</bytecodeTargetLevel>
</component>
</project>
\ No newline at end of file
<component name="libraryTable">
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.10.0.pr3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.10.0.pr3/jackson-annotations-2.10.0.pr3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.10.0.pr3/jackson-annotations-2.10.0.pr3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.10.0.pr3/jackson-annotations-2.10.0.pr3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.0.pr3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.10.0.pr3/jackson-core-2.10.0.pr3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.10.0.pr3/jackson-core-2.10.0.pr3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.10.0.pr3/jackson-core-2.10.0.pr3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.0.pr3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.10.0.pr3/jackson-databind-2.10.0.pr3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.10.0.pr3/jackson-databind-2.10.0.pr3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.10.0.pr3/jackson-databind-2.10.0.pr3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<component name="libraryTable">
<library name="Maven: com.microsoft.sqlserver:mssql-jdbc:6.4.0.jre8">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/microsoft/sqlserver/mssql-jdbc/6.4.0.jre8/mssql-jdbc-6.4.0.jre8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/microsoft/sqlserver/mssql-jdbc/6.4.0.jre8/mssql-jdbc-6.4.0.jre8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/microsoft/sqlserver/mssql-jdbc/6.4.0.jre8/mssql-jdbc-6.4.0.jre8-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<component name="libraryTable">
<library name="Maven: junit:junit:4.12">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<component name="libraryTable">
<library name="Maven: org.hamcrest:hamcrest-core:1.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<component name="libraryTable">
<library name="Maven: org.mybatis:mybatis:3.5.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.2/mybatis-3.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.2/mybatis-3.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<component name="libraryTable">
<library name="Maven: org.mybatis:mybatis-spring:2.0.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/2.0.2/mybatis-spring-2.0.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/2.0.2/mybatis-spring-2.0.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/2.0.2/mybatis-spring-2.0.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<component name="libraryTable">
<library name="Maven: org.projectlombok:lombok:1.18.10">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.10/lombok-1.18.10.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.10/lombok-1.18.10-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.10/lombok-1.18.10-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<component name="libraryTable">
<library name="Spring-4.3.18.RELEASE" type="spring">
<properties version="4.3.18.RELEASE" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/spring-aspects-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-context-support-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-aop-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-beans-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-instrument-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-expression-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-instrument-tomcat-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-jms-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-jdbc-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-context-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-oxm-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-messaging-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-core-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/commons-logging-1.2.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/aopalliance-1.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-orm-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-tx-4.3.18.RELEASE.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/spring-test-4.3.18.RELEASE.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="jdk8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/classes" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/homework.iml" filepath="$PROJECT_DIR$/homework.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
USE [master]
USE [master]
GO
CREATE DATABASE [cesgroup]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'cesgroup', FILENAME = N'D:\SQLServer\MSSQL14.MSSQLSERVER\MSSQL\DATA\cesgroup.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
LOG ON
( NAME = N'cesgroup_log', FILENAME = N'D:\SQLServer\MSSQL14.MSSQLSERVER\MSSQL\DATA\cesgroup_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [cesgroup].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [cesgroup] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [cesgroup] SET ANSI_NULLS OFF
GO
ALTER DATABASE [cesgroup] SET ANSI_PADDING OFF
GO
ALTER DATABASE [cesgroup] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [cesgroup] SET ARITHABORT OFF
GO
ALTER DATABASE [cesgroup] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [cesgroup] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [cesgroup] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [cesgroup] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [cesgroup] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [cesgroup] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [cesgroup] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [cesgroup] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [cesgroup] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [cesgroup] SET DISABLE_BROKER
GO
ALTER DATABASE [cesgroup] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [cesgroup] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [cesgroup] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [cesgroup] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [cesgroup] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [cesgroup] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [cesgroup] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [cesgroup] SET RECOVERY FULL
GO
ALTER DATABASE [cesgroup] SET MULTI_USER
GO
ALTER DATABASE [cesgroup] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [cesgroup] SET DB_CHAINING OFF
GO
ALTER DATABASE [cesgroup] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF )
GO
ALTER DATABASE [cesgroup] SET TARGET_RECOVERY_TIME = 60 SECONDS
GO
ALTER DATABASE [cesgroup] SET DELAYED_DURABILITY = DISABLED
GO
ALTER DATABASE [cesgroup] SET QUERY_STORE = OFF
GO
ALTER DATABASE [cesgroup] SET READ_WRITE
GO
USE [cesgroup]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[test](
[context] [varchar](1000) NOT NULL,
[id] [int] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
USE [cesgroup]
GO
INSERT INTO [dbo].[test]
([context])
VALUES
('{"id":1,"name":"Tom","dept":{"name":"大数据一部","id":1},"age":20,"salary":3000.0,"createTime":1575204567793,"updateTime":1575204567793}');
GO
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration>
<fileset id="fileset" name="Spring Application Context" removed="false">
<file>file://$MODULE_DIR$/src/main/resources/springConfig.xml</file>
</fileset>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Spring-4.3.18.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.2" level="project" />
<orderEntry type="library" name="Maven: com.microsoft.sqlserver:mssql-jdbc:6.4.0.jre8" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.2" level="project" />
<orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.10" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.0.pr3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.10.0.pr3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.0.pr3" level="project" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?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.ces</groupId>
<artifactId>homework</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.4.0.jre8</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.0.pr3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.0.pr3</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
1.自定义typeHandler类完成数据库字段context,定义varchar,内容是json,直接和java'对象映射
1.自定义typeHandler类完成数据库字段context,定义varchar,内容是json,直接和java'对象映射
位置:src.test.mybatisTest
方法:test
2.批量执行数据库插入操作
方法:testBatch
\ No newline at end of file
package com.ces;
package com.ces;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
/***
* 对象与JSON字符串转换工具类
* @author Slet
*
*/
public class ObjectMapperUtils {
private static final ObjectMapper mapper=new ObjectMapper();
/**
* 对象-->JSON
* @param data
* @return
*/
public static String toJSON(Object data) {
String json=null;
try {
json=mapper.writeValueAsString(data);
} catch (JsonProcessingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
return json;
}
/**
* JSON-->对象
* @param <T>
* @param json
* @param clazz
* @return
*/
public static <T>T toObject(String json,Class<T> clazz) {
T t=null;
try {
t = mapper.readValue(json, clazz);
} catch (JsonParseException e) {
e.printStackTrace();
throw new RuntimeException(e);
} catch (JsonMappingException e) {
e.printStackTrace();
throw new RuntimeException(e);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
return t;
}
}
package com.ces.config;
package com.ces.config;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
@Configuration
public class MybatisConfig {
@Bean
public SqlSessionFactory sqlSessionFactory() throws IOException {
return new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis/mybatis-config.xml"));
}
}
package com.ces.config;
package com.ces.config;
import com.ces.ObjectMapperUtils;
import com.ces.pojo.User;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@MappedJdbcTypes(JdbcType.VARCHAR)
public class UserHandler extends BaseTypeHandler<User> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, User parameter, JdbcType jdbcType) throws SQLException {
String userJson = ObjectMapperUtils.toJSON(parameter);
ps.setString(i,userJson);
}
@Override
public User getNullableResult(ResultSet rs, String columnName) throws SQLException {
String userJson = rs.getString(columnName);
return ObjectMapperUtils.toObject(userJson, User.class);
}
@Override
public User getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
String userJson=rs.getString(columnIndex);
return ObjectMapperUtils.toObject(userJson,User.class);
}
@Override
public User getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
String userString = cs.getString(columnIndex);
return ObjectMapperUtils.toObject(userString,User.class);
}
}
package com.ces.mapper;
package com.ces.mapper;
import com.ces.pojo.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper {
public int insert(User user);
public User selectOne(int id);
}
package com.ces.pojo;
package com.ces.pojo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@Accessors(chain = true)
public class Dept implements Serializable {
String name;
Integer id;
}
package com.ces.pojo;
package com.ces.pojo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
@Data
@Accessors(chain = true)
public class User implements Serializable {
Integer id;
String name;
Dept dept;
Integer age;
Double salary;
Date createTime;
Date UpdateTime;
}
<?xml version="1.0" encoding="UTF-8"?>
<?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.ces.mapper.UserMapper">
<cache eviction="FIFO" readOnly="false"
type="org.apache.ibatis.cache.impl.PerpetualCache"
flushInterval="60000" size="512"></cache>
<select id="selectOne" resultType="User">
select context from test where id=#{id}
</select>
<insert id="insert" parameterType="User">
insert into test values(#{user});
</insert>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<?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>
<properties resource="mybatis/mybatis.properties"/>
<typeAliases>
<package name="com.ces.pojo"/>
</typeAliases>
<typeHandlers>
<typeHandler handler="com.ces.config.UserHandler" jdbcType="VARCHAR" javaType="com.ces.pojo.User"/>
</typeHandlers>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=zxoa;SelectMethod=Cursor"/>
<property name="username" value="sa"/>
<property name="password" value="123456"/>-->
<property name="driver" value="${database.driver}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
\ No newline at end of file
database.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
database.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
database.url=jdbc:sqlserver://localhost:1433;DatabaseName=cesgroup;SelectMethod=Cursor
database.username=sa
database.password=123456
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--配置包扫描-->
<context:component-scan base-package="com.ces"></context:component-scan>
</beans>
\ No newline at end of file
import org.apache.ibatis.io.Resources;
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 org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import java.io.IOException;
import java.sql.Connection;
/**测试数据库连接*/
@Ignore
public class DataSourceTest {
protected SqlSessionFactory sqlSessionFactory;
@Before
public void init() throws IOException {
sqlSessionFactory= new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis/mybatis-config.xml"));
}
@Test
public void test() {
SqlSession sqlSession = sqlSessionFactory.openSession();
Connection connection = sqlSession.getConnection();
System.out.println(connection);
}
}
import com.ces.ObjectMapperUtils;
import com.ces.ObjectMapperUtils;
import com.ces.mapper.UserMapper;
import com.ces.pojo.Dept;
import com.ces.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import java.io.IOException;
import java.util.*;
/**作业*/
public class MybatisTest {
UserMapper userMapper;
SqlSession sqlSession;
SqlSessionFactory sqlSessionFactory;
@Before
public void init() throws IOException {
sqlSessionFactory= new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis/mybatis-config.xml"));
sqlSession = sqlSessionFactory.openSession();
userMapper=sqlSession.getMapper(UserMapper.class);
}
/**2.批量执行插入数据*/
@Test
public void testBatch(){
SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
UserMapper batchSessionMapper = batchSession.getMapper(UserMapper.class);
List<User> list=new ArrayList<>(100);
/**初始化*/
for (int i = 0; i < 100; i++) {
User user=new User().setName(UUID.randomUUID().toString())
.setCreateTime(new Date()).setAge(new Random().nextInt(20))
.setDept(new Dept().setName(UUID.randomUUID().toString())
.setId(i))
.setSalary(new Random().nextDouble())
.setId(i);
user.setUpdateTime(user.getCreateTime());
list.add(user);
}
long t1=System.currentTimeMillis();
list.forEach(user -> batchSessionMapper.insert(user));
batchSession.commit();
long t2=System.currentTimeMillis();
System.out.println("执行时间为"+(t2-t1)+"ms"); //1525ms
}
/**1.自定义typeHandler类完成数据库字段context,定义varchar,内容是json,直接和java'对象映射
* @see com.ces.config.UserHandler
* */
@Test
@Ignore
public void test(){
/**插入*/
Dept dept=new Dept().setId(1).setName("大数据一部");
User user=new User().setAge(20).setDept(dept).setId(1).setSalary(3000.0)
.setName("Tom").setCreateTime(new Date());
user.setUpdateTime(user.getCreateTime());
long t1=System.currentTimeMillis();
int i = userMapper.insert(user);
sqlSession.commit();
long t2=System.currentTimeMillis();
System.out.println("数据插入");
System.out.println("影响了"+i+"行");
System.out.println("执行时间为"+(t2-t1)+"ms");
System.out.println("-----------------");
/**查询*/
long t3=System.currentTimeMillis();
User one = userMapper.selectOne(7);
long t4=System.currentTimeMillis();
System.out.println("结果为:"+one);
System.out.println("执行时间为"+(t4-t3)+"ms");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<?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.ces.mapper.UserMapper">
<cache eviction="FIFO" readOnly="false"
type="org.apache.ibatis.cache.impl.PerpetualCache"
flushInterval="60000" size="512"></cache>
<select id="selectOne" resultType="User">
select context from test where id=#{id}
</select>
<insert id="insert" parameterType="User">
insert into test values(#{user});
</insert>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<?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>
<properties resource="mybatis/mybatis.properties"/>
<typeAliases>
<package name="com.ces.pojo"/>
</typeAliases>
<typeHandlers>
<typeHandler handler="com.ces.config.UserHandler" jdbcType="VARCHAR" javaType="com.ces.pojo.User"/>
</typeHandlers>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=zxoa;SelectMethod=Cursor"/>
<property name="username" value="sa"/>
<property name="password" value="123456"/>-->
<property name="driver" value="${database.driver}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
\ No newline at end of file
database.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
database.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
database.url=jdbc:sqlserver://localhost:1433;DatabaseName=cesgroup;SelectMethod=Cursor
database.username=sa
database.password=123456
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--配置包扫描-->
<context:component-scan base-package="com.ces"></context:component-scan>
</beans>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment