먼저 Maven Project를 생성하자
maven-archetype-quickstart를 선택하고 next버튼을 클릭한다.
다음과 같이 Group Id와 Artifact Id를 주고 Finish버튼을 클릭한다.
pom.xml에서 다음과 같이 수정한다.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- MySQL을 사용하기 위한 의존설정 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
</dependencies>
이제 Build Path를 수정할 차례다.
해당 프로젝트의 JRE System Library를 우클릭한 후
Preferences를 선택한다.
Execution enviroment를 선택하면 버전 목록이 나오는데
여기서 1.8을 선택한다.
이제 실습 할 준비를 마쳤다.
사용자 정보를 저장할 User클래스를 만들자.
(게터세터 자동 생성 메뉴 단축키 : Cmd + Alt + s)
package springbook.user.domain;
public class User {
String id;
String name;
String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
이제 User 오브젝트가 담긴 정보가 실제로 보관될 DB의 테이블을 만들자.
MySQL를 이용하여 다음의 쿼리를 실행한다.
drop database if exists tobiespring;
create database tobiespring;
use tobiespring;
drop table if exists users;
create table users(
id varchar(10) primary key,
name varchar(20) not null,
password varchar(20) not null
);
사용자 정보를 DB에 넣고 관리할 수 있는 UserDao클래스를 만들어보자.
package springbook.user.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import springbook.user.domain.User;
public class UserDao {
public void add(User user) throws ClassNotFoundException, SQLException {
String url = "jdbc:mysql://localhost:3306/tobiespring?characterEncoding=utf8&serverTimezone=UTC";
Class.forName("com.mysql.cj.jdbc.Driver");
Connection c = DriverManager.getConnection(url,"root","12345678");
String sql = "insert into users values(?,?,?)";
PreparedStatement ps = c.prepareStatement(sql);
ps.setString(1, user.getId());
ps.setString(2, user.getName());
ps.setString(3, user.getPassword());
ps.executeUpdate();
ps.close();
c.close();
}
public User get(String id) throws ClassNotFoundException, SQLException {
String url = "jdbc:mysql://localhost:3306/tobiespring?characterEncoding=utf8&serverTimezone=UTC";
Class.forName("com.mysql.cj.jdbc.Driver");
Connection c = DriverManager.getConnection(url,"root","12345678");
String sql = "select * from users where id = ?";
PreparedStatement ps = c.prepareStatement(sql);
ps.setString(1,id);
ResultSet rs = ps.executeQuery();
rs.next();
User user = new User();
user.setId(rs.getString("id"));
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
rs.close();
ps.close();
c.close();
return user;
}
}
만들어진 코드의 기능을 검증해보자.
다음과 같이 UserDao내에 main()메서드를 이용하자.
public static void main(String[] args) throws ClassNotFoundException, SQLException {
UserDao dao = new UserDao();
User user = new User();
user.setId("whiteship");
user.setName("백기선");
user.setPassword("married");
dao.add(user);
System.out.println(user.getId() +" 등록성공");
}
[1.6] 싱글톤 레지스트리와 오브젝트 스코프 (0) | 2020.10.27 |
---|---|
[1.5]Spring IoC (0) | 2020.10.27 |
[1.4] 제어의 역전 (0) | 2020.10.27 |
[1.3] DAO의 확장 (0) | 2020.10.27 |
[1.2] DAO의 분리 (0) | 2020.07.30 |
댓글 영역