模板总结:
-
普通Maven项目
-
在父项目中的pom.xml中插入以下依赖
<!-- 导入依赖--> <dependencies> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!--Lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> </dependency> <!--日志Log4J--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> <!--在build中配置resources,来防止我们资源导出失败的问题--> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build> <!--这个是防止报错的,主要是因为约定大于配置,那么可能在target中不会出现xml文件,所以需要以上的配置-->
-
-
删除普通Maven项目中的src,再项目中在建立一个普通Maven的Madule,之后操作都在这里面进行
-
在src->java下面建立以下的包
-
com.kuang.pojo
-
主要放实体类,实体类根据数据库的表来设计
public class User { private int id; //id private String name; //姓名 private String pwd; //密码 //构造,有参,无参 //set/get //toString() }
-
使用Lombok省略很多东西,比如@Data
-
-
com.kuang.dao
-
主要放接口,比如UserMapper接口
import com.kuang.pojo.User; import java.util.List; public interface UserMapper { List<User> selectUser(); }
-
也会存放UserMapper.xml(当dao层好几个接口时,这类文件放在resources中,同时要在resources中建立对应的包,比如com.kuang.dao)
<?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.kuang.dao.UserMapper"> <!--参数是这样的表达式, parameterType="com.kuang.pojo.User--> <select id="selectUser" resultType="com.kuang.pojo.User" > select * from user </select> </mapper>
-
如果接口是用注解开发的,那么UserMapper.xml则不需要建立,注解开发需要注意,注解开发链接
-
-
com.kuang.utils
-
主要存放MybatisUtils的文件,但是在ssm整合中则不需要这个,用Spring中的xml文件即可配置好,注意开启事务提交
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.IOException; import java.io.InputStream; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //获取SqlSession连接,注意开启事务提交 public static SqlSession getSession(){ return sqlSessionFactory.openSession(true); } }
-
id自动生成的工具类,比如说UUID
package com.kuang.utils; import java.util.UUID; public class IdUtils { public static String getId(){ return UUID.randomUUID().toString().replaceAll("-",""); } }
-
-
//测试类 public class MyTest { @Test public void selectUser() { SqlSession session = MybatisUtils.getSession(); //方法一: //List<User> users = session.selectList("com.kuang.mapper.UserMapper.selectUser"); //方法二: UserMapper mapper = session.getMapper(UserMapper.class); List<User> users = mapper.selectUser(); for (User user: users){ System.out.println(user); } session.close(); } }
-
-
在resouces中配置mybatis-config.xml核心配置文件
方式一:
注意配置UserMapper.xml文件,要是接口,就是用class进行相应的配置接口
<?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核心配置文件--> <configuration> <typeAliases> <typeAlias type="com.kuang.pojo.Blog" alias="blog"></typeAlias> </typeAliases> <!--environments配置环境组--> <!--default默认环境--> <environments default="development"> <!--environment单个环境--> <environment id="development"> <!--transactionManager配置事务管理器--> <transactionManager type="JDBC"/> <!--配置连接池--> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/kuang/dao/BlogMapper.xml"/> </mappers> </configuration>
方式二:
db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8 username=root password=123456
mybatis-config.xml
<configuration> <!--导入properties文件--> <properties resource="db.properties"/> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
-
名字优化在mybatis-config.xml中进行配置
方式一:
<!--配置别名,注意顺序-->
<typeAliases>
<typeAlias type="com.kuang.pojo.User" alias="User"/>
</typeAliases>
方式二:每一个在包 com.kuang.pojo
中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。
<typeAliases>
<package name="com.kuang.pojo"/>
</typeAliases>
方式三:
@Alias("user")
public class User {
...
}
-
要是有日志文件,需要在resources中配置log4j.properties
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码 log4j.rootLogger=DEBUG,console,file #控制台输出的相关设置 log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.Threshold=DEBUG log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%c]-%m%n #文件输出的相关设置 log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File=./log/kuang.log log4j.appender.file.MaxFileSize=10mb log4j.appender.file.Threshold=DEBUG log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n #日志输出级别 log4j.logger.org.mybatis=DEBUG log4j.logger.java.sql=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG