SQL--(Spring 和 MyBatis 整合连接数据库 )

Spring 和 MyBatis 整合连接数据库 

方法一:使用 mybatis 配置文件

文件目录:

     

配置文件:

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"
	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-4.2.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">

	 <context:property-placeholder location="classpath:jdbc.properties"/>
	 <context:component-scan base-package="com.neuedu"></context:component-scan>
		<!-- 配置数据源 -->
		<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
			<property name="user" value="${jdbc.user}"></property>
			<property name="password" value="${jdbc.password}"></property>
			<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
			<property name="driverClass" value="${jdbc.driverClass}"></property>
			
			
			<property name="initialPoolSize" value="${jdbc.initialPoolSize}"></property>
			<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
		</bean>
			
		<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
			<property name="dataSource" ref="dataSource"></property>
			<property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
		</bean>
		
		<!--配置扫描包  -->
		<bean id="scanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
			<property name="basePackage" value="com.neuedu.mapper"></property>
			<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
		</bean>
		
</beans>

jdbc.properties

jdbc.user=root
jdbc.password=******
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/exam

jdbc.initialPoolSize = 5
jdbc.maxPoolSize = 20

log4j.properties

# Global logging configuration
#\u5728\u5f00\u53d1\u73af\u5883\u4e0b\u65e5\u5fd7\u7ea7\u522b\u8981\u8bbe\u7f6e\u6210DEBUG\uff0c\u751f\u4ea7\u73af\u5883\u8bbe\u7f6e\u6210info\u6216error
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

sqlMapConfig.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>
<typeAliases>
	<package name="com.neuedu.model"/>
</typeAliases>

	
</configuration>

UserMapper.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.neuedu.mapper.UserMapper">
	<select id="getUserById" parameterType="int" resultType="com.neuedu.po.User">
		select * from user where usersid = #{usersid}
	</select>
</mapper>

接口:

UserMapper.java

package com.neuedu.mapper;

import com.neuedu.po.User;

public interface UserMapper {
	public User getUserById(int usersid);
}

文件:User.java

扫描二维码关注公众号,回复: 2693102 查看本文章
package com.neuedu.po;

public class User {
	private int usersid;
	private String username;
	public int getUsersid() {
		return usersid;
	}
	public void setUsersid(int usersid) {
		this.usersid = usersid;
	}
	public double getAccount() {
		return account;
	}
	public void setAccount(Double account) {
		this.account = account;
	}
	private String password;
	private int phone;
	private String email;
	
	private Double account;
	public int getUserid() {
		return usersid;
	}
	public void setUserid(int usersid) {
		this.usersid = usersid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getPhone() {
		return phone;
	}
	public void setPhone(int phone) {
		this.phone = phone;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Double getcount() {
		return account;
	}
	public void setCount(Double count) {
		this.account = account;
	}
	@Override
	public String toString() {
		return "User [userid=" + usersid + ", username=" + username + ", password=" + password + ", phone=" + phone
				+ ", email=" + email + "]";
	}
	
	
}

UserService.java

package com.neuedu.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.neuedu.mapper.UserMapper;
import com.neuedu.po.User;
@Service
public class UserService {
	@Autowired
	private UserMapper userMapper;
	public void getUserById(int usersid) {
	
		User user = (User) userMapper.getUserById(usersid);
		System.out.println(user);
	}
}

测试文件

UserServiceTest.java

package com.neuedu.test;

import static org.junit.Assert.*;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.neuedu.service.UserService;

public class UserServiceTest {

	@Test
	public void test() {
		ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
		UserService userService = ac.getBean(UserService.class);
		userService.getUserById(1);
	}

}

输出:

方法二:别名(将所有配置文件写到 beans.xml)

修改代码:

删除:sqlMapConfig.xml

UserMapper.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.neuedu.mapper.UserMapper">
	<select id="getUserById" parameterType="int" resultType="User">   //修改代码
		select * from user where usersid = #{usersid}
	</select>
</mapper>

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"
	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-4.2.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">

	 <context:property-placeholder location="classpath:jdbc.properties"/>
	 <context:component-scan base-package="com.neuedu"></context:component-scan>
		<!-- 配置数据源 -->
		<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
			<property name="user" value="${jdbc.user}"></property>
			<property name="password" value="${jdbc.password}"></property>
			<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
			<property name="driverClass" value="${jdbc.driverClass}"></property>
			
			
			<property name="initialPoolSize" value="${jdbc.initialPoolSize}"></property>
			<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
		</bean>
			
		<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
			<property name="dataSource" ref="dataSource"></property>
			<property name="typeAliasesPackage" value="com.neuedu.po"></property>
         <!--修改代码;配置扫描别名的包  -->
		</bean>
		
		<!--配置扫描包  -->
		<bean id="scanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
			<property name="basePackage" value="com.neuedu.mapper"></property>
			<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
		</bean>
		
</beans>

配置扫描别名的包

输出:

猜你喜欢

转载自blog.csdn.net/jianghao233/article/details/81538401