간단 한 MyBatis 가 Oracle 데이터 베 이 스 를 연결 하 는 예
제 컴퓨터 운영 체제 버 전 은 Win 7 플래그 십 버 전 (ServicePack 1) 이 고 Oracle 버 전 은 Oracle 11g 입 니 다.
프로그램 을 만 들 기 전에 데이터베이스 테이블 을 만 듭 니 다. 이름 은 PERSON 입 니 다.INFO, 폼 SQL 은 다음 과 같 습 니 다.
-- 创建表 PERSON_INFO - 人员信息表
prompt create table 'PERSON_INFO' 人员信息表...
declare
v_rowcount number(10);
begin
select count(*) into v_rowcount from dual where exists(select * from user_objects where object_name = upper('PERSON_INFO'));
if v_rowcount = 1 then
execute immediate 'DROP TABLE PERSON_INFO';
end if;
end;
/
create TABLE PERSON_INFO
(
id number(12,0) PRIMARY KEY,
name varchar2(20) NOT NULL,
gender char(1) DEFAULT ' ',
remark varchar2(1000),
input_date number(10,0) DEFAULT to_number(to_char(sysdate,'yyyymmdd')),
input_time number(10,0) DEFAULT to_number(to_char(sysdate,'hh24miss'))
);
-- 创建序列 SEQ_PERSON_INFO - 人员信息表ID序列
prompt create Sequence 'SEQ_PERSON_INFO' 人员信息表ID序列...
declare
v_rowcount number(10);
begin
select count(*) into v_rowcount from dual where exists(select * from user_objects where object_name = upper('SEQ_PERSON_INFO'));
if v_rowcount = 1 then
execute immediate 'DROP SEQUENCE SEQ_PERSON_INFO';
end if;
end;
/
CREATE SEQUENCE SEQ_PERSON_INFO
INCREMENT BY 1
START WITH 1
MAXVALUE 999999999999999999999999999
CYCLE
CACHE 20 ;
-- 插入测试数据
prompt Create error_info InitValue ...
begin
execute immediate 'truncate table error_info';
INSERT INTO PERSON_INFO (id, NAME, gender, remark, input_date, input_time)
VALUES (SEQ_PERSON_INFO.NEXTVAL, 'Tsybius', 'm', '-', 20160229, 225703);
INSERT INTO PERSON_INFO (id, NAME, gender, remark, input_date, input_time)
VALUES (SEQ_PERSON_INFO.NEXTVAL, 'Galatea', 'f', '-', 20160228, 123456);
commit;
end;
/
데이터 시트 가 만들어 지면 자바 프로그램 을 구축 할 수 있 습 니 다. 프로젝트 의 파일 상하 관 계 는 그림 과 같 습 니 다.
구축 절 차 는 다음 과 같다.
1. JAR 패키지 가 져 오기: mybatis - 3.2.2. jar, ojdbc 14 - 10.2.0.2.0. jar
2. MyBatis 프로필 mybatis - config. 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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
<property name="username" value="xxx"/>
<property name="password" value="xxx"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="PersonInfoMapper.xml"/>
</mappers>
</configuration>
그 중 네 개의 property 는 자신의 컴퓨터 상황 에 따라 설정 해 야 한다.
3. xml 파일 만 들 기: PersonInfoMapper. xml, 그 중에서 SQL 문 구 를 실 현 했 습 니 다: selectAllPersonInfo, 모든 PERSON 조회INFO 정보
<?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="PersonInfoMapper">
<resultMap id="BaseResultMap" type="PersonInfo">
<id column="ID" property="id" jdbcType="DECIMAL" />
<result column="NAME" property="name" jdbcType="VARCHAR" />
<result column="GENDER" property="gender" jdbcType="CHAR" />
<result column="REMARK" property="remark" jdbcType="VARCHAR" />
<result column="INPUT_DATE" property="inputDate" jdbcType="DECIMAL" />
<result column="INPUT_TIME" property="inputTime" jdbcType="DECIMAL" />
</resultMap>
<select id="selectAllPersonInfo" resultMap="BaseResultMap">
select ID, NAME, GENDER, REMARK, INPUT_DATE, INPUT_TIME from PERSON_INFO
</select>
</mapper>
4. 대응 하 는 자바 클래스 구축: PersonInfo, 그 중 각 속성 은 데이터 시트 PERSON 에 대응INFO 의 각 필드
public class PersonInfo {
Long id;
String name;
String gender;
String remark;
Long inputDate;
Long inputTime;
public Long getId() {
return id;
}
public void setId(Long 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 getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Long getInputDate() {
return inputDate;
}
public void setInputDate(Long inputDate) {
this.inputDate = inputDate;
}
public Long getInputTime() {
return inputTime;
}
public void setInputTime(Long inputTime) {
this.inputTime = inputTime;
}
}
5. 대응 하 는 자바 클래스 구축: PersonInfoMapper
import java.util.List;
public interface PersonInfoMapper {
List<PersonInfo> selectAllPersonInfo();
}
6 、 클래스 MyBatisTest 를 만들어 main 함 수 를 저장 하고 PERSON 조회INFO 표 의 모든 데 이 터 를 인쇄 합 니 다.
import java.io.InputStream;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
* MyBatis使用测试
* @author Tsybius2014
* @date 2016年2月29日
* @time 下午11:47:01
* @remark
*
*/
public class MyBatisTest {
public static void main(String[] args) {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
try {
PersonInfoMapper mapper = session.getMapper(PersonInfoMapper.class);
List<PersonInfo> personInfos = mapper.selectAllPersonInfo();
if (personInfos == null) {
System.out.println("The result is null.");
} else {
for (PersonInfo personInfo : personInfos) {
System.out.println("---PersonInfo---");
System.out.println("name:" + personInfo.name);
System.out.println("gender:" + personInfo.gender);
System.out.println("remark:" + personInfo.remark);
System.out.println("inputDate:" + personInfo.inputDate);
System.out.println("inputTime:" + personInfo.inputTime);
System.out.println();
}
}
} finally {
session.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
7. main 함 수 를 실행 합 니 다. 콘 솔 출력 결 과 는 다음 과 같 습 니 다.
---PersonInfo---
name:Tsybius
gender:m
remark:-
inputDate:20160229
inputTime:225703
---PersonInfo---
name:Galatea
gender:f
remark:-
inputDate:20160228
inputTime:123456
END
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.