建网站都要什么费用/营销模式有哪些
目录
导包:
加载驱动:
获取连接:
预编译sql语句:
填充占位符:
执行:(查询操作额外步骤)
增删改:
查询:
资源关闭:
导包:
打开项目结构界面,点击库,导入包即可
加载驱动:
将获取数据库三要素,存储在文件中,通过IO流读取即可
加载 JDBC 驱动需调用 Class 类的静态方法 forName()
//加载配置文件InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbcproperties");Properties pp = new Properties();pp.load(is);//读取配置信息String user = pp.getProperty("user");String password = pp.getProperty("password");String url = pp.getProperty("url");String driverClass = pp.getProperty("driverClass");//加载驱动Class.forName(driverClass);
获取连接:
通过DriverManager.registerDriver() 方法来获取实例
//获取连接Connection conn = DriverManager.getConnection(url, user, password);
预编译sql语句:
//预编译sql语句,返回PreparedStatement实例ps = conn.prepareStatement(sql);//个人理解为完整版的sql语句
填充占位符:
//填充占位符for (int i = 0; i < args.length; i++) {ps.setObject(i + 1, args[i]);}
执行:(查询操作额外步骤)
增删改:
//执行ps.execute();
查询:
//执行,获取结果集rs = ps.executeQuery();//获取结果集的元数据ResultSetMetaData rsmd = rs.getMetaData();//获取列数int columnCount = rsmd.getColumnCount();//创建集合对象ArrayList<T> al = new ArrayList<T>();//操作数据while (rs.next()) {//创建行对象T t = clazz.newInstance();for (int i = 0; i < columnCount; i++) {//获取列值Object columnValue = rs.getObject(i + 1);//获取列的别名String columnLabel = rsmd.getColumnLabel(i + 1);//通过反射,给对象的属性赋值Field field = Order.class.getDeclaredField(columnLabel);field.setAccessible(true);field.set(t, columnValue);}al.add(t);}
资源关闭:
//资源关闭try {if (ps != null) {ps.close();}} catch (SQLException throwables) {throwables.printStackTrace();}try {if (conn != null) {conn.close();}} catch (SQLException throwables) {throwables.printStackTrace();}try {if (rs != null) {rs.close();}} catch (SQLException throwables) {throwables.printStackTrace();}