模板總結:
-
普通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