目录
将安装好的驱动包复制下来
然后在这里新增一个目录
将复制好的驱动包复制进去
对其右键,选中添加为库
在编程的时候,大部分代码都是固定的,会变的大多都是SQL语句,所以我就将一些比较零散注意事项写到代码注释里了
setUrl里面的内容代表数据源
其中jdbc:mysql: 是一个url 表示给jdbc的mysql使用的
127.0.0.1 是数据库服务器所造的IP地址,每台计算机都有自己的IP地址,而这一串数字相当于类里面的this,表示当前使用的计算机
3306 是端口号,在安装MySQL时,默认为3306(不改的化)
3306/后面 到 ?前面的test 是你使用的库的名字
&后面的 描述了请求的字符编码形式(当前数据库的字符集)
在后面的useSSL=false 是关闭加密功能
上面的这一串需要修改就只有数据库名了(基本上)
- public static void main(String[] args) throws SQLException {
- DataSource dataSource = new MysqlDataSource();
- ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");
- ((MysqlDataSource) dataSource).setUser("root");
- ((MysqlDataSource) dataSource).setPassword("123456");
-
- //选择java.sql getConnection()需要添加异常声明
- Connection connection = dataSource.getConnection();
-
- String sql = "insert into student values(1,'张三'),(2,'李四')";//SQL语句
- PreparedStatement statement = connection.prepareStatement(sql);//选择java.sql
-
- int ret = statement.executeUpdate();
- System.out.println(ret);
- System.out.println(statement);
- }
SQL语句如果是增删改,那么后面的statement需要用executeUpdate方法
它可以返回SQL语句所修改的行数
如果是查询语句则需要用 executeQuery 接收返回的数据
同时 executeQuery 的返回值需要用 ResultSet(java.sql) 这个类型去接收
具体情况如下:
- public static void main(String[] args) throws SQLException {
- DataSource dataSource = new MysqlDataSource();
- ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");
- ((MysqlDataSource) dataSource).setUser("root");
- ((MysqlDataSource) dataSource).setPassword("123456");
- Connection connection = dataSource.getConnection();//选择java.sql getConnection()需要添加异常声明
- String sql = "select * from student";//SQL语句
- PreparedStatement statement = connection.prepareStatement(sql);//选择java.sql
- ResultSet resultSet = statement.executeQuery();
- while(resultSet.next()) {
- int id = resultSet.getInt("id");
- String name = resultSet.getString("name");
- System.out.println("id: " + id + " name: " + name);
- }
- System.out.println(statement);
- }
在用ResultSet接收后 要使用while循环,循环条件为resultSet.next() -- 代表一次输出一行
接收数据用get...()方法, 括号中填的是列名
- int n = scanner.nextInt();
- String sql = "select * from student where id = ?";//SQL语句
- PreparedStatement statement = connection.prepareStatement(sql);//选择java.sql
- statement.setInt(1,n);
在语句中的问号代表一个数据,可以使用statement.set...() 这个方法去赋值
它的第一个参数传入整形,代表赋值的是第几个问号,实例中代表:对第一个问号赋值为变量n
?的使用可以提高代码的安全性.