mysql 数据库
1、先要需要设置密码
找到mysql的安装目录,一直到bin下。之后在dos下进入到bin级目录,之后执行mysql -hlocalhost -uroot -p。(这里默认mysql服务是开启的)如果确实不用密码就能进入,那你就去添加一个密码就行了
mysql> use mysql;
mysql> update user set password=password("123456") where user="root";
mysql> flush privileges;
mysql> quit
2、mysql 数据库 表等sql操作
mysql -uroot -proot
create database spring_data;
use spring_data;
create table student(
id int not null auto_increment,
name varchar(20) not null,
age int not null,
primary key(id)
);
show tables;
desc student;
//插入数据
insert into student(name,age) values("zhangsan",20);
select * from student;
传统方法访问数据库 jdbc
(一)
pom.xml
<!--MySQL Driver-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
JDBCUtil.java
package com.ryo.Util;
import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.*;
import java.util.Properties;
public class JDBCUtil {
public static Connection getConnection() throws Exception {
// String url = "jdbc:mysql:///spring_data";
// String user = "root";
// String password = "root";
// String driverClass = "com.mysql.jdbc.Driver";
Properties properties = new Properties();
BufferedReader bufferedReader = new BufferedReader(new FileReader("D:/work/SpringDataProject/src/main/java/resources/db.properties"));
properties.load(bufferedReader);
String url = properties.getProperty("jdbc.url");
String user = properties.getProperty("jdbc.user");
String password = properties.getProperty("jdbc.password");
String driverClass = properties.getProperty("jdbc.driverClass");
Class.forName(driverClass);
Connection connection = DriverManager.getConnection(url,user,password);
return connection;
}
public static void release(ResultSet resultSet,Statement statement,Connection connection){
if(resultSet != null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement != null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
db.properties
jdbc.url = jdbc:mysql:///spring_data
jdbc.user = root
jdbc.password = root
jdbc.driverClass = com.mysql.jdbc.Driver
JDBCUtilTest.java
package com.ryo;
import com.ryo.Util.JDBCUtil;
import org.junit.Assert;
import org.junit.Test;
import java.sql.Connection;
public class JDBCUtilTest {
@Test
public void testGetConnection()throws Exception {
Connection connection = JDBCUtil.getConnection();
Assert.assertNotNull(connection);
}
}
StudentDAO.java
package com.imooc.dao;
import com.imooc.domain.Student;
import java.util.List;
/**
* StudentDAO访问接口
*/
public interface StudentDAO {
/**
* 查询所有学生
* @return 所有学生
*/
public List<Student> query();
/**
* 添加一个学生
* @param student 待添加的学生
*/
public void save(Student student);
}
StudentDAOImpl.java 实现类
package com.imooc.dao;
import com.imooc.domain.Student;
import com.imooc.util.JDBCUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
/**
* StudentDAO访问接口实现类:通过最原始的JDBC的方式操作
*/
public class StudentDAOImpl implements StudentDAO{
@Override
public List<Student> query() {
List<Student> students = new ArrayList<Student>();
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String sql = "select id, name , age from student";
try {
connection = JDBCUtil.getConnection();
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
Student student = null;
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
student = new Student();
student.setId(id);
student.setName(name);
student.setAge(age);
students.add(student);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtil.release(resultSet,preparedStatement,connection);
}
return students;
}
@Override
public void save(Student student) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String sql = "insert into student(name, age) values(?,?)";
try {
connection = JDBCUtil.getConnection();
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, student.getName());
preparedStatement.setInt(2, student.getAge());
preparedStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtil.release(resultSet,preparedStatement,connection);
}
}
}
StudentDAOImplTest.java 测试
package com.imooc.dao;
import com.imooc.domain.Student;
import org.junit.Test;
import java.util.List;
public class StudentDAOImplTest {
@Test
public void testQuery() {
StudentDAO studentDAO = new StudentDAOImpl();
List<Student> students = studentDAO.query();
for (Student student : students) {
System.out.println("id:" + student.getId()
+ " , name:" + student.getName()
+ ", age:" + student.getAge());
}
}
@Test
public void testSave() {
StudentDAO studentDAO = new StudentDAOImpl();
Student student = new Student();
student.setName("test");
student.setAge(30);
studentDAO.save(student);
}
}
(二)使用jdbcTemplate
spring jdbcTemplate
- maven 依赖
- DataSource&jdbcTemplate 注入
- Test Case
pom.xml
<!--spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>