版權聲明:本文爲博主原創文章,未經博主允許不得轉載。
package com.zxh.customer.bean1;
import Java.util.List;
import com.zxh.customer.bean.Parter;
public class User {
private Long custId;
private String custName;
private Parter parter;
private List<Parter> parterList;
public Long getCustId() {
return custId;
}
public void setCustId(Long custId) {
this.custId = custId;
}
public String getCustName() {
return custName;
}
public void setCustName(String custName) {
this.custName = custName;
}
public Parter getParter() {
return parter;
}
public void setParter(Parter parter) {
this.parter = parter;
}
public List<Parter> getParterList() {
return parterList;
}
public void setParterList(List<Parter> parterList) {
this.parterList = parterList;
}
}
<?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.zxh.customer.dao1.IUserDao">
<select id="selectUserById" parameterType="long" resultType="User1">
SELECT CUST_ID as "custId", CUST_NAME "custName" FROM CUST WHERE
CUST_ID = #{id}
</select>
<!-- 注意parameterType=int,long,byte這些基本類型 {}裏面參數任寫, 如果是對象類型必須和屬性相同並提供get和set方法
string也是對像類型 -->
<!-- like '%${custName}%' 可以寫成 like #{custName} 在程序中把%拼接到custName -->
<select id="selectUsersByName" parameterType="User1" resultType="User1">
SELECT CUST_ID as "custId", CUST_NAME "custName" FROM CUST WHERE
CUST_NAME like '%${custName}%'
</select>
<insert id="saveUser" parameterType="User1">
insert into cust(cust_id,
cust_name) values(seq_cust.nextval, #{custName})
</insert>
<!-- 更新 -->
<update id="updateUser" parameterType="User1">
update cust set cust_name = #{custName} where cust_id = #{custId}
</update>
<!-- 刪除 -->
<delete id="deleteUser" parameterType="int">
delete from cust where
cust_id = #{custId}
</delete>
</mapper>
package com.zxh.customer.dao1;
import java.util.List;
import com.zxh.customer.bean1.User;
public interface IUserDao {
// 方法名要和SQL映射文件中的id相同 包名+接口名與mapper的namespace相同
public User selectUserById(Long custId);
public List<User> selectUsersByName(User user);
public void saveUser(User user);
public void updateUser(User user);
public void deleteUser(Long custId);
}
package com.zxh.customer.util1;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtil {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
static {
try {
reader = Resources.getResourceAsReader("config1/Configuration.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSessionFactory() {
return sqlSessionFactory;
}
}
Configuration.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>
<!-- 屬性配置 xml文件中使用 ${} url "/"路徑-文件 或 "."-java類文件 -->
<properties resource="config1/jdbc_config.properties">
<!-- <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@172.16.1.241:1521:jtcrm" />
<property name="username" value="jtorder" /> <property name="password" value="jtorder"
/> -->
</properties>
<!-- 或者 首先讀取properties元素內部的子元素的值, 再讀取properties配置文件的值 後者覆蓋前者 -->
<!-- <properties resource="config/jdbc.properties"> <property name="driver"
value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@172.16.1.241:1521:jtcrm"
/> </properties> -->
<!-- 設置mybatis3 運行時的行爲方式 全局設置 -->
<settings>
<!-- 設置超時時間,它決定驅動等待一個數據庫響應的時間 -->
<setting name="defaultStatementTimeout" value="60000" />
<!-- 啓用或禁用 緩存 -->
<setting name="cacheEnabled" value="false" />
<!-- 啓用或禁用延遲加載。當禁用時, 所有關聯對象都會即時加載 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 允許或不允許多種結果集從一個單獨 的語句中返回(需要適合的驅動) 不用考慮 -->
<setting name="multipleResultSetsEnabled" value="true" />
<!-- 使用列標籤代替列名。 不同的驅動在這 方便表現不同 不用考慮 -->
<setting name="useColumnLabel" value="true" />
<!-- 允許 JDBC 支持生成的鍵。 需要適合的 驅動。 如果設置爲 true 則這個設置強制 生成的鍵被使用 -->
<setting name="useGeneratedKeys" value="false" />
<!-- 等等 -->
</settings>
<!-- 定義類別名,簡化xml文件的配置 -->
<typeAliases>
<typeAlias type="com.zxh.customer.bean1.User" alias="User1" />
</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}" />
<!-- <property name="driver" value="oracle.jdbc.driver.OracleDriver"
/> <property name="url" value="jdbc:oracle:thin:@172.16.1.241:1521:jtcrm"
/> <property name="username" value="jtorder" /> <property name="password"
value="jtorder" /> -->
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/zxh/customer/bean1/User.xml" />
</mappers>
</configuration>
jdbc_config.properties
driver=oracle.jdbc.driver.OracleDriver
url=jdbc\:oracle\:thin\:@172.16.1.241\:1521\:jtcrm
username=jtorder
password=jtorder
package com.zxh.customer.test1;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.zxh.customer.bean1.User;
import com.zxh.customer.dao1.IUserDao;
import com.zxh.customer.util1.MybatisUtil;
//import org.springframework.context.ApplicationContext;
//import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* 面向接口編程
* @author zhangxiaohong
*
*/
public class Test {
public static void main(String[] args) {
SqlSession session = MybatisUtil.getSessionFactory().openSession();
try {
IUserDao userDao = session.getMapper(IUserDao.class);
User user = new User();
user.setCustId(611186L);
user.setCustName("中國好樣的的了樂樂");
userDao.deleteUser(611186L);
session.commit();
System.out.println(Integer.parseInt("011"));
System.out.println("成功!");
} finally {
session.close();
}
}