C:\Users\사용자명\.m2 에 있는 repository 삭제하면 된다.


블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

@ResponseBody

@RequestMapping(value = "/json", method = RequestMethod.POST, produces = "application/json; charset=utf-8")

public String jsonx(String id) {



produces = "application/json; charset=utf-8"


이걸 쓰지 않으면 view에서 물음표로 받는다. 쓰면 정상적으로 출력 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

@ResponseBody

@RequestMapping(value = "/json", method = RequestMethod.POST, produces = "application/json; charset=utf-8")

public String jsonx(@RequestBody String body) {


@RequestBody String body


를 쓰면 파라메터 이름을 몰라도 body로 일단 받을 수 있다.

위는 json을 받아서 json으로 return 시키는 부분인데 파라메터를 몰라서 이걸 써야 했다. 



블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

<!-- https://mvnrepository.com/artifact/org.json/json -->

<dependency>

<groupId>org.json</groupId>

<artifactId>json</artifactId>

<version>20160810</version>

</dependency>





일단 위의 코드를 pom에 추가한다. 수동으로 json을 만드는 방법도 있는데 그건 사람이 할 일이 안된다..


{    "result":200",

"foundation":"C",

item":

[

{"password":"123","id":"이인직"},

{"password":"123141","id":"허경영"},

{"password":"3124","id":"김본좌"}

]

}


예시문이 좀 이상하지만 다음의 json을 만든다고 하자.


account의 VO는 다음과 같다.


package com.testDrive.netis;


public class account {


private String id;

private String password;


public account() {

super();

// TODO Auto-generated constructor stub

}


public account(String id, String password) {

super();

this.id = id;

this.password = password;

}


public String getId() {

return id;

}


public void setId(String id) {

this.id = id;

}


public String getPassword() {

return password;

}


public void setPassword(String password) {

this.password = password;

}


@Override

public String toString() {

return "account [id=" + id + ", password=" + password + "]";

}


}




컨트롤러단의 코드는 다음과 같다.


ArrayList<account> alist = new ArrayList<account>();

alist.add(new account("이인직", "123"));

alist.add(new account("허경영", "123141"));

alist.add(new account("김본좌", "3124"));

//여기까지 arraylist 불러오는 부분

JSONObject obj = new JSONObject(); // json object 생성 

obj.put("result", 200); //넣기

obj.put("foundation", "C"); //넣기


obj.put("item", alist); // Arraylist를 그대로 넣는다. 

return obj.toString(); // String으로 반환

}


JsonArray를 사용하지 않아도 자동으로 넣어진다. 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->

<dependency>

<groupId>org.codehaus.jackson</groupId>

<artifactId>jackson-mapper-asl</artifactId>

<version>1.5.0</version>

</dependency>



produces = "application/json"를 안붙혀서 라는데 실제로는 위의 코드가 pom.xml에 위의 코드가 없을 가능성이 크다.


저걸로도 에러가 뜬다면 produces = "application/json"을 mapper쪽에 붙히면 될것이다. 


@ResponseBody

@RequestMapping(value = "/ajax", method = RequestMethod.POST,  produces = "application/json")

public ArrayList<String> ajax() {


이런식으로 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요


pom.xml에 다음 코드를 추가


<!-- log -->

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-simple</artifactId>

<version>1.7.5</version>

</dependency>

<!-- log -->



 src/test/resources에 log4j.xml가 있다.

여기를 열면



이 부분이 있는데 info라 적힌걸 debug로 고치면 debug모드로 동작을 한다. 



컨트롤러 단에서 사용방법


private static final Logger logger = LoggerFactory.getLogger(이름Controller.class);


// 이 코드를 위에 선언해주고 


logger.info("Welcome to home"); // 일반적인 info에는 이렇게 

logger.debug("xxxxxx{}" , String); // debug에서는 이렇게 사용한다. 


info로 고치면 debug에 썼던 것들이 보이지 않는다. 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요


pom.xml에서 다음을 추가한다. 


    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.44</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.11.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.3.11.RELEASE</version>
            <scope>test</scope>
        </dependency>
        <!-- log -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.5</version>
        </dependency>
        <!-- log -->




root-context에 들어가서 namespaces에 다음과 같이 체크 후 다음 코드 추가




<bean id="dataSource"

        class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>

        <property name="url" value="jdbc:mysql://localhost:3306/database"></property>

        <property name="username" value="root"></property>

        <property name="password" value=""></property>

    </bean>

 

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <property name="dataSource" ref="dataSource"></property>

        <property name="configLocation" value="classpath:/mybatis-config.xml">

        </property>

    </bean>

 

    <bean id="transactionManager"

        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource"></property>

    </bean>

 

    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">

        <constructor-arg ref="sqlSessionFactory"></constructor-arg>

    </bean>


   <property name="url" value="jdbc:mysql://localhost:3306/database"></property>

이 부분은 localhost:3306 이 부분은 자신의 서버주소 + 포트를, database는 database이름을 쓴다.

database는 만들거나 있는 것을 쓰면 된다.


        <property name="username" value="root"></property> 에서 root는 id를 



        <property name="password" value="password"></property> 에서 password는 암호를 적는다 



그리고 나서 src/main/resources에 mybatis-config.xml파일을 만들고 다음과 같이 추가


<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

  "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<typeAliases>

<typeAlias type="com.testdrive.test.VO.Account" alias="account" />

</typeAliases>

<mappers>

<mapper resource="mapper/accountMapper.xml" />

</mappers> 

</configuration>


<typeAlias type="com.testdrive.test.VO.Account" alias="account" /> 부분은 VO가 들어가는 부분이다.

각자 맞는 VO를 생성후 위치를 설정해 준다


<mapper resource="mapper/accountMapper.xml" /> 부분은 sql문구가 들어가는 mapper.xml부분이다.

mapper는 아래에서 생성해 준다.




다음과 같이 mapper폴더를 src/main/resources에 만들고

<mapper resource="mapper/accountMapper.xml" />  에서 만든 accountMapper.xml 이름 파일을 만든다.

추가로 mapper파일을 만든다면 mabatis-config에서 추가된 mapper이름을 설정해준다. 


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper

  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="com.testdrive.test.Mapper.accountMapper">

<insert id="register" parameterType="account">

insert into

account(

uid,

password,

name

)

values

(

#{uid},

#{password},

#{name}

)

</insert>


<select id="list" resultType="account">

select uid, name from account

</select>


<select id="login" parameterType="account" resultType="account">

select

uid, password from account where uid = #{uid} and password =

#{password}

</select>

<select id="idcheck" parameterType="string" resultType="string">

select

uid 

from 

account 

where uid = #{uid}

</select>


</mapper>


<mapper namespace="com.testdrive.test.Mapper.accountMapper"> 

이 부분은 src/main/java에서 만든 accountMapper란 이름의 interface파일이다.



이렇게 폴더 구조를 보는게 더 편할것이다.


src/main/java에 다음과 같이 VO와 mapper파일이 존재한다.

이걸 mabatis-config에서 VO를

mapper에서 interface파일을 불러오는 것이다.

일종의 리모컨처럼 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

사용환경은 다음과 같다

 - 윈도우10 64비트

 - maria DB 10.2 (2017.10.10일자 download)




pom 항목에 다음과 같이 추가


<!-- Mybatis -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.4.1</version>

</dependency>


<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.3.0</version>

</dependency>


<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>3.2.9.RELEASE</version>

</dependency>


<dependency>

<groupId>commons-dbcp</groupId>

<artifactId>commons-dbcp</artifactId>

<version>1.4</version>

</dependency>


<!-- Maria DB -->

<dependency>

<groupId>org.mariadb.jdbc</groupId>

<artifactId>mariadb-java-client</artifactId>

<version>1.6.0</version>

</dependency>


오른쪽 사진과 같이 root-context에서  namespaces 탭에 다음과 같이 체크를 해주고


root-context에 다음과 같이 추가(<!-- MyBatis(Maria DB)와 Spring 연결 --> 이외의 것은 어짜피 같이 해주는게 좋다.)


<!-- MyBatis(Maria DB)와 Spring 연결 -->

<bean id="dataSource"

class="org.springframework.jdbc.datasource.SimpleDriverDataSource">

<property name="driverClass" value="org.mariadb.jdbc.Driver" />

<property name="url" value="jdbc:mariadb://서버주소/DB이름" />

<property name="username" value="id" />

<property name="password" value="암호" />

</bean>

<!-- MyBatis(Maria DB)와 Spring 연결 -->


<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource" ref="dataSource"></property>

<property name="configLocation" value="classpath:/mybatis-config.xml">

</property>

</bean>


<bean id="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource"></property>

</bean>


<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">

<constructor-arg ref="sqlSessionFactory"></constructor-arg>

</bean>


서버주소 이름 아이디 암호는 각자 맞게 수정을 한다

통상적으로는 다음과 같다.

서버주소 : localhost:3306 (mysql과 같이 설치했다면 3307로 했을것이다.)


데이터베이스 이름: 이건 만든 이름대로 



show databases 를 쓰면 현재 있는 database가 나온다.

create database xxxxxx; 를 하면 데이터베이스가 생성되니 이걸쓰면 된다.


아이디: 설치할때 root를 쓰거나 아니면 새로 만든다.

암호: 패스워드





src/main/resource에 mybatis-config.xml 추가


<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

  "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<typeAliases>

<typeAlias type="com.testdrive.test.VO.Account" alias="account" />

</typeAliases>

<mappers>

<mapper resource="mapper/accountMapper.xml" />

</mappers> 

</configuration>




src/main/resources 에 mapper 폴더에 accountMapper.xml 추가


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper

  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="com.testdrive.test.Mapper.accountMapper">

<insert id="register" parameterType="account">

insert into

account(

uid,

password,

name

)

values

(

#{uid},

#{password},

#{name}

)

</insert>


<select id="list" resultType="account">

select uid, name from account

</select>


<select id="login" parameterType="account" resultType="account">

select

uid, password from account where uid = #{uid} and password =

#{password}

</select>

<select id="idcheck" parameterType="string" resultType="string">

select

uid 

from 

account 

where uid = #{uid}

</select>


</mapper>



다음과 같이 하면 된다.


DAO만들때 @repository 빼먹지 말고




그리고 마리아 DB data source explorer 연결방법



우선 data source explorer 탭에서


( data source explore 탭은 

window -> show view -> other 클릭후 data 검색

STS라면 Spring 개발시 건드릴 부분

)




mariaDB 는 mysql과 거의 같아서 저걸로한다





빨간 부분 클릭



5.1클릭 후 jar list탭으로 이동



버전이 안맞아서 그렇다

더 상위버전을 다운로드 받는다

그리고 나서 add jar zip 클릭



상위버전을 추가해준다.

그러면 오류가 사라짐


마지막으로 propo데이터베이스 설정을 한다



데이터베이스 이름과 아이디 암호 포트 주소등을 입력







그리고 나서 finish를 누르면 추가가 된다.










블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요