MyBatis & Spring 配置

    科技2024-05-31  76

    MyBatis

    依赖

    <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>x.x.x</version> </dependency>

    mybatis-config.xml

    如果既有mapper节点又有package节点,配置文件要求先使用<mapper>节点,再使用<package>节点,顺序混乱就会报错

    <?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="xxx.properties"></properties> <settings> <!-- 开启驼峰式命名--> <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 开启日志--> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> <typeAliases> <!-- 取别名--> <typeAliase type="" aliase=""/> <!--类名为JavaBean--> <package name="com.toxic.pojo"/> </typeAliases> <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路径"/> <!--用注解时就需要下列方式,注解的时候没有xxxMapper.xml文件 用mapper.xml文件编写sql语句的时候也可以用package--> <package name="包名"/> </mappers> </configuration>

    xxxMapper.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="接口"> <select id="接口中的函数" resultType="返回类型"> sql语句 </select> </mapper>

    测试:

    public void test(){ SqlSessionFactory sqlSessionFactory=null; try{ String resource="mybatis-config.xml"; InputStream inputStream=Resources.getResourceAsStream(resource); sqlSessionFactroy = new SqlSessionFactoryBuilder().build(inputStream); }catch(IOException e){ e.printStackTrace(); } SqlSession sqlSession=sqlSessionFactory.openSession(); xxx mapper=sqlSession.getMapper(xxx.class); mapper.xxx ... }

    Spring

    依赖

    <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.8.RELEASE</version> </dependency>

    beans.xml

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="hello" class="com.toxic.Hello.Hello"> <!-- collaborators and configuration for this bean go here --> <property name="name" value="Spring"/> </bean> <!-- <bean id="..." class="...">--> <!-- &lt;!&ndash; collaborators and configuration for this bean go here &ndash;&gt;--> <!-- </bean>--> <!-- more bean definitions go here --> </beans>

    使用aop

    依赖

    <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.6</version> </dependency>

    beans.xml

    <?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:aop = "http://www.springframework.org/schema/aop" xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "> <!-- bean definition & AOP specific configuration --> </beans>

    注解

    依赖

    <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.2.8.RELEASE</version> </dependency> </dependencies>

    beans.xml

    <?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:annotation-config/> <!-- 注解扫描的包--> <context:component-scan base-package="com.xxx.xxx"/> </beans>

    spring-mybatis

    依赖

    <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.6.RELEASE</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.2</version> </dependency>

    beans.xml

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="mysql123"/> </bean> <!--用SqlSessionFactoryBean创建SqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="mapperLocations" value="classpath:com/toxic/mapper/*.xml"/> </bean> <!--SqlSessionTemplate创建sqlSession--> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory"/> </bean> <bean id="UserMapper" class="com.toxic.mapper.UserMapperImpl"> <property name="sqlSession" ref="sqlSession"/> </bean> <!-- <bean id="..." class="...">--> <!-- &lt;!&ndash; collaborators and configuration for this bean go here &ndash;&gt;--> <!-- </bean>--> <!-- more bean definitions go here --> </beans>

    sqlSession用这种方式创建的就不用关闭了

    Processed: 0.013, SQL: 8