#2-2 / spring + database 연결,회원가입 JSTL+spring+Datasource
by hingu2024. 7. 9.
⚡ database 연결에 따른 결과값 출력
* 2가지 방식 => 맘에드는 방식으로 사용^_^ 1. XML형태의 DB연결 2. properties+JSTL => spring legacy 프로젝트일 때 사용 , 차후에 진행
XML형태의 DB연결 시 필요한 라이브러리 (필수) - from) pom.xml 1. mysql-connector-java 2. spring-jdbc : @ 이용하여 resource 형태로 db연결하여 구성 3. commons-dbcp ( dbcp란? Database Connection Pool ) : spring,spring-boot에서만 사용가능 => 다운법 : https://dev-eunse.tistory.com/193 의 22번,23번 (mybatis는 해당 예제에서 필요 없음) mybatis : java에 DAO + SQL colomn 을 서로 연동하여 사용할수 있는 기능
- mainpage2.java
package webspring;
@Controllerpublicclassmainpage2{
//Database 연결 => Spring@Autowired//Database 접속정보 xml 파일 로드 (dbInfo : 우리가 dbconfig.xml에 적은 id)
BasicDataSource dbInfo;
@GetMapping("/datalist.do")//jsp 찾음public String datalist(){
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
con = this.dbInfo.getConnection();
String sql = "select count(*) as ctn from user";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
rs.next();
System.out.println(rs.getString("ctn")); //data 갯수 출력됨
ps.close();
rs.close();
}catch(Exception e) {
System.out.println(e);
System.out.println("database 접속 오류");
} //이제 con은 안닫아줘두댐returnnull;
}
}
@Autowired 모든 메소드에 사용할수 있는 객체 및 Bean을 사용할 수 있도록 의존성 여부 실행 딱 한번만 작성 단점 : 외부 class 를 호출하여 Database를 연결하면 오류발생함 : Controller에서만 사용 가능함 (걍 일반 Module에서는 사용 불가 ! ) - 값을 인자값으로 넘기면 사용 가능함 : https://dev-eunse.tistory.com/198 여기 예제에서 해봄
- dbconfig.xml (bean 파일에 생성) WEB-INF안에 beans 파일 생성 - dbconfig.xml : beans, context,mvc,jdbc 모두 최신 버전으로 체크
//~~ 하단에
<beanid="dbInfo"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><propertyname="driverClassName"value="cohttp://m.mysql.cj.jdbc.Driver"></property><propertyname="url"value="jdbc:mysql://localhost:3306/cms"></property><propertyname="username"value="hana"></property> //db id
<propertyname="password"value="hana1234"></property> //db 비번
</bean>
이 db 씀
❓
⚡ datasource를 이용하여 해당 정보를 db에 insert => 상단에서 setting한 datasource를 이용 -member.jsp