ALTER TABLE `content` CHANGE `createdAt` `createdAt` 

TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; 


수정시마다 date time 수정, 쿼이 이름을 바꿔서 사용.

'DB > Mysql' 카테고리의 다른 글

수정시마다 date time 수정  (0) 2015.11.28
Mysql 테이블 생성, 사용자 추가  (0) 2012.05.22
Mysql Error 2003, 10061문제  (1) 2012.05.17
Work bench 작성된 DB를 EER Diagram으로 변환  (0) 2012.03.28
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

ORM의 사실과 오해

DB 2015.08.05 18:21

링크글 : http://okky.kr/article/286812

위의 질문, 답, 토의를 보는데 유익해서 스크랩 겸 정리


책 저자 : 

 실제 구글 트랜드로 검색해보면 전세계에서 JPA, Hibernate를 합한 검색어가 94%인 반면 iBatis, myBatis를 합한 검색어가 6%가 안됩니다.

SQL만 잘 작성해도 충분히 빠르게 애플리케이션을 개발할 수 있다고 생각합니다. ORM 기술은 객체 지향과 관계형 데이터베이스 둘을 활용하는 것이지 대체하는 것이 아닙니다. 따라서 관계형 데이터베이스를 잘 모르면서 ORM 기술을 사용하는 것 처럼 위험한 것도 없다

 데이터를 언제 대체될지 모르는 특정 개발 환경에 종속적으로 만든다는 건 ... 꼬리가 몸통을 흔드는 격이라고 봅니다.

 ORM은 이름 그대로 객체(O) 관계형 데이터베이스(R)을 중간에서 매핑(M)하는 것입니다. 객체 지향 애플리케이션은 객체 지향대로 다루고 관계형 데이터베이스는 관계형 데이터베이스대로 설계하고 사용할 수 있도록 중간에서 도와주는 기술일 뿐

대부분의 데이터베이스가 너무 이질적이어서 공통화를 할 수 없습니다

ORM은 한계를 인정하고, 네이티브 SQL을 사용할 수 있도록 지원합니다. 


데이터를 연산하는 형태는 was에게 맡기는게 맞는 것 같습니다.

 sql안에서 직접 계산하고 연산하는 부분은 통계를 제외하고는 지양해야 된다고 생각됩니다.


ORM 은 편리하지만, RDBMS 의 특성을 100% 살리지는 못한다고 생각합니다. 그래서 비교적 간단한 형태의 관계를 가지는 데이터들이라면 ORM 이 어울리지만, 그렇지 않은 경우 참 난해해집니다.


ORM  역시 대부분은 일반적인 형태대로 테이블이나 관계 구성을 하면 최적의 환경을 못만들겠더군요. 그래서 ORM 에 맞는 구성을 해둘 경우 더욱 쾌적한 프로그래밍이 가능하다고 느꼈는데, 이것조차 진입장벽이라는게 문제였습니다. 


 DBA 와 개발자의 경계는

무척이나 선명한 편입니다.

ORM 을 사용하게 되면 이 경계가 살짝(?) 모호해 지죠. 


 Learning Curve의 문제이지 생산성의 문제는 아니라고 봅니다. 



'DB' 카테고리의 다른 글

ORM의 사실과 오해  (0) 2015.08.05
MS SQL Id 칼럼 초기화  (0) 2013.08.30
ORM 이란  (0) 2013.05.08
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

MS SQL Id 칼럼 초기화

DB 2013.08.30 11:02

insert 작업을 하다 delete 수행 시 

다시 insert 를 하게 되면 이전 insert한 Id 다음 행 번호부터 시작하는 경우가 있다.

그럴때는 다음 명령어를 써서 Id행번호를 초기화 해주자

0은 다시 시작할 Id 행 번호 

DBCC CHECKIDENT('테이블이름',RESEED,0);


'DB' 카테고리의 다른 글

ORM의 사실과 오해  (0) 2015.08.05
MS SQL Id 칼럼 초기화  (0) 2013.08.30
ORM 이란  (0) 2013.05.08
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

ORM 이란

DB 2013.05.08 15:01

ORM : Object Relation Mapping.

 오브젝트와 RDB 사이에 존재하는 개념과 접근방법, 성격의 차이 때문에 요구되는 불편한 작업을 제거해줘서 자바 개발자가 오브젝트를 가지고 정보를 다루면 ORM 프레임워크가 이를 RDB에 적절한 형태로 변환해주거나 그 반대로 RDB에 저장되어 있는 정보를 자바 오브젝트가 다루기 쉬운 형태로 변환해주는기술이다.

- 토비의 Spring 11장 중에서

*RDB : Relation DataBase. 관계형 데이터베이스


뭔말인지 참 어려운데 쉽게 말하면 쉽게 DB에 엑세스 하여 정보를 다룰수 있게 도와주는 방법.

이라고 생각한다.

대표적으로 Hibernate. iBatis, Spring JPA 등

'DB' 카테고리의 다른 글

ORM의 사실과 오해  (0) 2015.08.05
MS SQL Id 칼럼 초기화  (0) 2013.08.30
ORM 이란  (0) 2013.05.08
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

@OneToMany 관계에서 List를 사용하려면 항상 mappedBy 를 하셔야할겁니다.

관련 정보는 http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/ 문서에서 Collections 와 Indexed Collections (List,Map) 부분을 참조해보세요.


블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

1.hql

 - SessionFactory로 session 생성후 hql 작성, Query 객체 생성. 쿼리 실행

2.session.save/delete

 - 제약이 많음 원하는 결과 도출 힘듬

3.HibernateTemplate find/get 등

 - 제약많음, 원하는결과 도출힘듬

4.Criteria

 - NoSql 방식으로서는 괜찮은 대안. 여러가지 응용가능

블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

@Column(name="Price", columnDefinition="Decimal(10,2) default '100.00'")
출처 :  http://stackoverflow.com/questions/197045/setting-default-values-for-columns-in-jpa 


블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

SeesionFactory를 사용할때 session이 없는 경우 발생한다.


web.xml 에 아래의 필터를 추가하여 세션을 생성.


<filter>

<filter-name>openSessionInViewFilter</filter-name>

<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

<init-param>

<param-name>singleSession</param-name>

<param-value>true</param-value>

</init-param>

</filter>


<filter-mapping>

<filter-name>openSessionInViewFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.


>mysql -u root -p mysql

root 계정으로 mysql 접속

>use mysql;

mysql 테이블 사용

>create database tableName;

테이블 생성


방법1 - 사용자를 추가하여 권한부여 (추천)

>grant all privileges on testId.* to test@hostAddress identified by 'testPwd' with grant option;


방법2 - mysql 사용자 DB에 직접 추가

>use mysql;

>INSERT INTO user VALUES('%', 'testId', PASSWORD('testPwd'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');




'DB > Mysql' 카테고리의 다른 글

수정시마다 date time 수정  (0) 2015.11.28
Mysql 테이블 생성, 사용자 추가  (0) 2012.05.22
Mysql Error 2003, 10061문제  (1) 2012.05.17
Work bench 작성된 DB를 EER Diagram으로 변환  (0) 2012.03.28
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

Tag MySQL

로컬에 DB환경을 테스트 하려고 하니 Error2003, 10061문제가 발생하면서 Mysql이 실행되지 않았다.


검색해본 결과 root 비밀번호 문제라고 한다. (제대로 입력한거 같은데 사람의 기억력이란 참 모를일이다.)

하여튼 Mysql 설치경로 \bin으로 들어가서

>mysqld --skip-grant

입력하면 콘솔이 멈추게 된다. 왜 멈추는지는 알 수 없으나 창을 닫고

다시 재접속을 하면 원활하게 사용할수 있다. 

*root패스워드가 사라지게 되니 실제 서비스에서는 root패스워드를 초기화 하는 방향으로 해결하자.

이후 
>flush privileges; 
로 버퍼를 비워주고

>use mysql;
mysql 로 database를 바꿔주고

>update  user  set  password=password('1234') where user='root';
로 root 패스워드를 초기화 한다.

안될때는 콘솔을 껏다 켜는 방향으로 하자. 





'DB > Mysql' 카테고리의 다른 글

수정시마다 date time 수정  (0) 2015.11.28
Mysql 테이블 생성, 사용자 추가  (0) 2012.05.22
Mysql Error 2003, 10061문제  (1) 2012.05.17
Work bench 작성된 DB를 EER Diagram으로 변환  (0) 2012.03.28
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.