package action; import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; import model.User; import conn.Ibatis; public class ListAction { List<User> list; public String execute(){ Ibatis ibatis=new Ibatis(); try { //db에서 모든 글을 가져오기 list=ibatis.sqlMapper.queryForList("selectAllUsers"); //select하기 ? Map<String, String> map=new HashMap<String, String>(); map.put("USER_ID", "^^"); //list=ibatis.sqlMapper.queryForList("select", map); // 지우기 ibatis.sqlMapper.delete("delete", map); } catch (SQLException e) { System.out.println(e.getMessage()); } return "success"; } public List<User> getList() { return list; // <s:iterater value="list">로 호출할 것이 } }
package conn; import java.io.IOException; import java.io.Reader; import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; import model.User; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Ibatis { public static SqlMapClient sqlMapper; static { try { //sqlMapConfig.xml 파일의 설정내용을 가져온다. Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml"); //sqlMapConfig.xml의 내용을 적용한 sqlMapper 객체 생성. sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); } catch (IOException e) { throw new RuntimeException( "SqlMapClient 인스턴스 생성시 예외발생." + e, e); } } }
package model; public class User { private String userId; private String userPW; private String userName; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getUserPW() { return userPW; } public void setUserPW(String userPW) { this.userPW = userPW; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } @Override public String toString() { String result; result=String.format("[User:ID=%s,Password=%s,Name=%s]", userId, userPW, userName); return result; } }
package test; import java.io.IOException; import java.io.Reader; import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; import model.User; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class UserTest { private static SqlMapClient sqlMapper; static List<User> list; static { try { //sqlMapConfig.xml 파일의 설정내용을 가져온다. Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml"); //sqlMapConfig.xml의 내용을 적용한 sqlMapper 객체 생성. sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); } catch (IOException e) { throw new RuntimeException( "SqlMapClient 인스턴스 생성시 예외발생." + e, e); } } public static List<User> getList() { return list; //${list} <s:property value="list"> <s:iterator 로 화면에 출력 } }
create table if not exists user( USER_ID varchar(20) primary key, USER_PW varchar(20), USER_NAME varchar(20) ); insert into user value('^^', 'pppp1111', 'Hong'); insert into user value('-_-', '1111pppp', 'Min'); commit; insert into user (USER_ID, USER_PW, USER_NAME ) values ('pinksubean', 'pppp1111', 'park'); insert into user (USER_ID, USER_PW, USER_NAME ) values ('pinkonejee', '1111pppp', 'kim');SqlMapConfig.xml
<?xml version="1.0" encoding="euc-kr" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <properties resource="dbconnect.properties" /> <settings useStatementNamespaces="false" cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" /> <transactionManager type="JDBC"> <dataSource type="DBCP"> <property name="JDBC.Driver" value="${driver}" /> <property name="JDBC.ConnectionURL" value="${url}" /> <property name="JDBC.Username" value="${username}" /> <property name="JDBC.Password" value="${password}" /> <property name="JDBC.DefaultAutoCommit" value="false" /> </dataSource> </transactionManager> <sqlMap resource="User.xml" /> </sqlMapConfig>struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.i18n.encoding" value="UTF-8" /> <constant name="struts.devMode" value="true" /> <package name="ch12" extends="struts-default"> <action name="List" class="action.ListAction"> <result>list.jsp</result> </action> </package> </struts>
<?xml version="1.0" encoding="euc-kr" ?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap namespace="User"> <!-- 전화번호부 테이블 DATA0=(user_name) DATA1 DATA2 --> <!-- 리절트 맵 정의 --> <resultMap id="UserResult" class="model.User"> <result property="userId" column="USER_ID"/> <result property="userPW" column="USER_PW"/> <result property="userName" column="USER_NAME"/> </resultMap> <!-- select 쿼리문 정의 --> <select id="selectAllUsers" resultMap="UserResult"> select * from USER </select> <!-- 상세 내용 보기 --> <select id="select" parameterClass="java.util.Map" resultMap="UserResult"> select * from USER where USER_ID=#USER_ID# </select> <!-- 글 지우기 --> <delete id="delete" parameterClass="java.util.Map"> delete from USER where USER_ID=#USER_ID# </delete> <!-- 글 수정하기 --> <update id="update" parameterClass="java.util.Map"> update USER (USER_PW, USER_NAME ) set ( #USER_PW#, #USER_NAME# ) where USER_ID=#USER_ID# </update> </sqlMap>web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>아이바티스 공부</display-name> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> <init-param> <param-name>struts.i18n.encoding</param-name> <param-value>euc-kr</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 게시글 목록 <br/> <s:iterator value="list"> <s:property value="userId"/> / <s:property value="userPW"/> / <s:property value="userName" /> <hr/> </s:iterator> <br/> private String userId; private String userPW; private String userName; </body> </html>
'Struts2 > 2012.04월 강좌(MySQL)' 카테고리의 다른 글
4일차 ibitis로 게시판 구현 (3) | 2012.06.08 |
---|---|
4일차 스프링과 스트러츠로 회원가입 처리 (0) | 2012.06.08 |
4일차 Exception, Logging , Profiling (0) | 2012.06.08 |
4일차 단일 파일 업로드, 다중 파일 업로드 (0) | 2012.06.08 |
4일차 chain result type (0) | 2012.06.08 |