Date: 2018/11/22
这部分看了两天,主要是调Junit,加载驱动,配置环境,测试代码比较费劲,主要笔记连接:javaEE (七)javaweb_Mysql笔记
下载和安装:Mysql
我是直接下载的直接安装的版本,现在在用eclipse连接JDBC与数据库,看能不能行。(能行的)
-
下载junit做单元测试,
我下载了,然后好像不需要下载,直接创建一个,junit加载选第二种方法:
在要使用Junit的project名上,点击properties–java build path-libraries, 点击Add
library,选择JunitT即可。 -
为什么win10 没有eclipse和JDBC的链接库啊啊啊??? 所以只能用5.1版本了?(好像只有这两个版本)
下载5.1.47的第二个版本:
- eclipse中的ctrl + 1 ,光标放@Test旁边,自动导入Junit包;
run as junit 光标只能放在Test的函数旁边
- 关于table里面设置primary key:
两种:
create table 表名(
uid int(32) primary key auto_increment,
uname varchar(32) ,
upassword varchar(32)
);
或:
create table stu_inform(
id int(32) primary key auto_increment,
name varchar(20),
grade double,
primary key(id,name) 注,此处是联合主键,只有两者一起相同才冲突
);
JDBC开发步骤:
- 注册驱动 :Class.forName(“com.mysql.jdbc.Driver”);
- 获得连接:
Connection con = DriverManager.getConnection(url,username,password);
mysql的url: jdbc:mysql://localhost:3306/mydb1?useUnicode=true&characterEncoding=UTF8(?后可选)
- 获得语句执行者(后面我们用preparedStatement代替)
Statement stmt = con.createStatement();
PreparedStatement psmt = con.prepareStatement(sql);
- 执行sql语句
int executeUpdate(String sql) ; 执行insert、update、delete(DML语句)
ResultSet rs = stmt.executeQuery(sql); 执行select (DQL语句)
boolean execute(String sql) 执行select返回true,执行其他语句返回false
- 处理结果
rs.next();
rs.getObject(int col);
- 释放资源(先进先出)
rs.close();
stmt.close();
con.close()
4、创建预处理对象
发现只有在mysql Workbench中开关数据库才能真正关闭数据库
下面给出JDBC连接数据库的步骤和代码:
1、注册驱动
2、获取连接
3、编写SQL语句(需要写以下)
4、创建预处理对象
5、设置参数(从1开始(可选)
6、执行查找操作(如果是查询,需要写一下)
7、释放资源
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
import com.mysql.jdbc.PreparedStatement;
public class Di2 {
//Junit做单元测试
@Test
public void testhhh() throws ClassNotFoundException, SQLException {
testHh();
}
public void testHh() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
//2、获取连接(root和password自己设置一下)
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/pin?useSSL=false","root","1111");
//3、编写SQL语句
String sql = "select * from product ";
//4、创建预处理对象
PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql);
//5、设置参数(从1开始)
/*pstmt.setString(1,"pingan");
pstmt.setDouble(2, 0.01);*/
//6、执行查找操作
ResultSet rs = pstmt.executeQuery(sql);
if(rs.next()) {
System.out.println("恭喜,登录成功!");
String pid = rs.getString("pid");
String pname = rs.getString("pname");
String price = rs.getString(3);
System.out.println(pid + " " + pname + " " + price);
System.out.println(sql);
}else {
System.out.println("登陆失败!");
}
while(rs.next()) {
String pid = rs.getString("pid");
String pname = rs.getString("pname");
String price = rs.getString(3);
System.out.println(pid + " " + pname + " " + price);
}
if(rs!=null)rs.close();
if(pstmt!=null)pstmt.close();
if(conn!=null)conn.close();
}
}
用?写SQL代码然后测试还是没用啊?
limit关键字,limit(v1,v2):
将数据库用v2切割,每页显示v2个记录,然后v1是我们要查找的起始页
select * from tablename limit(6,3);
将记录每页显示3个分开,从第三页开始输出(6%3=2)