티스토리 뷰
토비의 스프링 5장 'Service 추상화'부터 시작하기 위한 준비
토비의 스프링3는 기본적으로 사용하는 라이브러리가 있기 때문에 그걸 먼저 import 해놓고 해야 편하다.
build.gradle을 아래와 같이 setting 해놓고 시작하는게 좋다.
build.gradle
group 'java'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'idea'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile 'mysql:mysql-connector-java:5.1.6'
compile 'org.springframework:spring-webmvc:4.1.6.RELEASE'
compile 'org.springframework:spring-jdbc:4.1.6.RELEASE'
compile 'org.springframework:spring-test:4.1.6.RELEASE'
}
나는 mysql을 쓰므로mysql connector를 import 해주었다.
spring webmvc를 import하면 spring-core, spring-context, spring-beans가 같이 import된다.
spring-jdbc와 spring-test는 같이 import가 안되므로 import 해주면 된다.
library는 위와 같이 설정 해주면 되고 UserDao interface를 아래와 같이 만들어준다.
UserDao.java
public interface UserDao {
void add(User user);
User get(String id);
void deleteAll();
}
그리고 위에서 선언한 UserDao를 구현한 UserDaoJdbc를 만들어준다.
UserDaoJdbc.java
public class UserDaoJdbc implements UserDao{
private DataSource dataSource;
private JdbcTemplate jdbcTemplate;
public void add(User user){
this.jdbcTemplate.update("insert into users(id, name, password) values(?,?,?)", user.getId(), user.getName(), user.getPassword());
}
public User get(String id){
return this.jdbcTemplate.queryForObject("select * from users where id=?", new Object[]{id},
new RowMapper<User>() {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getString("id"));
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
return user;
}
});
}
@Override
public void deleteAll() {
this.jdbcTemplate.execute("delete from users");
}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
}
Do는 아래와 같이 만들어준다.
User.java
public class User {
String id;
String name;
String password;
public User() {
}
public User(String id, String name, String password) {
this.id = id;
this.name = name;
this.password = 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;
}
}
이 클래스는 만들기 쉬우나 혹시해서 그냥 소스 올려놓는거임.
main/resources/application.xml 은 아래와 같이 만들어준다.
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="userDao" class="com.UserDaoJdbc">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/service_db"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
</beans>
Test Class는 아래와 같이 만들어준다.
UserDaoTest.java
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class UserDaoJdbcTest {
@Autowired
private UserDaoJdbc userDaoJdbc;
private User user1, user2, user3;
@Before
public void setUp() throws Exception {
this.user1 = new User("oceanfog", "kyeongrok", "kim");
}
@Test
public void testBean() throws Exception {
assertNotNull(userDaoJdbc);
}
@Test
public void testAddandGet() throws Exception {
userDaoJdbc.deleteAll();
userDaoJdbc.add(user1);
User user = userDaoJdbc.get(user1.id);
assertEquals("oceanfog", user.getId());
}
}
이렇게 시작하는게 좋을 것 같다.
end.
728x90
'Spring > Toby의 스프링3 따라하기' 카테고리의 다른 글
내 꿈은 유투버 스프링 동영상 강좌 - JDK설치 (0) | 2016.11.28 |
---|---|
UserDao Test code (0) | 2016.05.18 |
Toby의 Spring3 따라하기-제4편 AnnotationContext를 이용한 Spring 사용 (1) | 2015.09.28 |
Toby의 Spring3 따라하기-제3편 connectionMaker interface 이용해서 분리하기 (0) | 2015.09.08 |
Toby의 Spring3 따라하기-제2편 UserDao.class 만들기 (0) | 2015.09.08 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- docker container
- 싱가폴
- vim
- 도커티슈케이스
- Linux
- docker container tissue
- docker container whale
- 도커티슈박스
- 도커컨테이너
- 2017 티스토리 결산
- 도커각티슈케이스
- Sh
- 개발자
- shellscript
- docker container case
- 도커각티슈박스
- docker container tissue box
- 이직
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함