SSM框架整合之Mybatis

1、所用jar包

在這裏插入圖片描述

2、項目結構

在這裏插入圖片描述

3、數據庫表結構

在這裏插入圖片描述

4、項目文件

Customer.java

package cn.sm1234.domain;

public class Customer {
	
	private Integer id;
	private String name;
	private String gender;
	private String telephone;
	private String address;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getTelephone() {
		return telephone;
	}
	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	@Override
	public String toString() {
		return "Customer [id=" + id + ", name=" + name + ", gender=" + gender + ", telephone=" + telephone
				+ ", address=" + address + "]";
	}
	
}

CustomerMapper接口

(要求項目具備什麼功能)

package cn.sm1234.dao;

import cn.sm1234.domain.Customer;

public interface CustomerMapper {

	/**
	 * 添加客戶
	 */
	public void saveCustomer(Customer customer) ;
}

log4j.properties

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, stdout

#log4j.logger.org.hibernate=info
log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

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>
	<!--配置properties -->
	<!-- <properties> <property name="driver" value="com.mysql.jdbc.Driver"></property> 
		<property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"></property> 
		<property name="username" value="root"></property> <property name="password" 
		value="1234"></property> </properties> -->
	<!--配置環境 -->
	<environments default="mysql">
		<!-- 配置mysql的環境 -->
		<environment id="mysql">
			<!-- 配置事務 -->
			<transactionManager type="JDBC" />

			<!--配置連接池 -->
			<dataSource type="POOLED">
				<!-- <property name="driver" value="${driver}"></property> <property 
					name="url" value="${url}"></property> <property name="username" value="${username}"></property> 
					<property name="password" value="${password}"></property> -->
				<property name="driver" value="com.mysql.jdbc.Driver" />
				
				<!-- 修改處 -->
				<property name="url"
					value="jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8" />
				<property name="username" value="root" />
				<property name="password" value="admin" />
			</dataSource>
		</environment>
	</environments>
	
	<!-- 配置映射文件的位置 -->
	<mappers>
		<!-- 修改處 -->
		<mapper resource="mapper/CustomerMapper.xml" />
	</mappers>
</configuration>

CustomerMapper.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">

<!--該文件編寫mybatis中的mapper接口裏面的方法 提供對應的sql語句 -->

<mapper	namespace="cn.sm1234.dao.CustomerMapper">
	
	<!--id與dao接口的方法名一定要相同,指定結果類型,和參數類型 -->
	<!-- 添加客戶 -->
	<insert id="saveCustomer" parameterType="cn.sm1234.domain.Customer">
		insert into t_customer(name,gender,telephone,address)
		values(
			#{name},
			#{gender},
			#{telephone},
			#{address}
		)
	</insert>
	

</mapper>

MyBatisTest.java測試類

package cn.sm1234.test;

import java.io.IOException;
import java.io.InputStream;

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.Test;

import cn.sm1234.dao.CustomerMapper;
import cn.sm1234.domain.Customer;

public class MyBatisTest {	
	@Test
	public void test() throws IOException {
		
//		1、創建SqlSessionFactoryBuilder
		SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
		
//		2、加載sqlMapConfig.xml文件
		InputStream is = Resources.getResourceAsStream("sqlMapConfig.xml");
		
//		2-2、創建SqlSessionFactory
		SqlSessionFactory factory = builder.build(is);
		
//		3、打開SqlSession
		SqlSession sqlSession = factory.openSession();
		
//		4、獲取Mapper接口的對象
		CustomerMapper customerMapper = sqlSession.getMapper(CustomerMapper.class);
		
//		5、操作
		Customer customer = new Customer();
		customer.setName("小張");
		customer.setGender("男");
		customer.setTelephone("020-3333333");
		customer.setAddress("廣州天河城廣場");
		
		customerMapper.saveCustomer(customer);
		
//		6、提交事務
		sqlSession.commit();
		
//		7、關閉資源
		sqlSession.close();
	}
}

結果
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章