我的第一个MVC项目
p
ackage com.sdjt.dao;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.commons.dbutils.QueryRunner;
- import org.apache.commons.dbutils.handlers.ArrayListHandler;
- import org.junit.Test;
- import com.sdjt.utils.C3Utils;
- /**
- * 实现操作增删改查
- *
- * @author lx
- *
- */
- public class PersonDaoJdb {
- /*
- * 实现查询
- */
- public List<Object[]> query(String id, String name, Integer age, String sex) {
- List<Object[]> list = new ArrayList<>();
- try {
- String sql = "select p_id id,p_name name,p_age age,"
- + "(case sex when '1' then '男' else '女' end) sex"
- + " from person where 1=1";
- List<Object> param = new ArrayList<>();
- if (id != null && !id.trim().equals("")) {
- sql += " and p_id like ?";
- param.add("%" + id.trim() + "%");
- }
- if (name != null && !name.trim().equals("")) {
- sql += " and p_name like ?";
- param.add("%" + name.trim() + "%");
- }
- if (age != null) {
- sql += " and p_age=?";
- param.add(age);
- }
- if (sex != null && !sex.trim().equals("")) {
- sql += " and sex=?";
- param.add(sex.trim());
- }
- QueryRunner run = new QueryRunner(C3Utils.getDs());
- list = run.query(sql, new ArrayListHandler(), param.toArray());
- System.err.println("sql is:"+sql);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- return list;
- }
- /**
- * 实现保存
- */
- public void save(String id, String name,String age, String sex) {
- try {
- String sql = "insert into person values(?,?,?,?)";
- QueryRunner run = new QueryRunner(C3Utils.getDs());
- run.update(sql, id,name,age,sex);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public void delete(String id, String name,String age, String sex) {
- try {
- String sql = "delete from person where ";
- if (id != null && !id.trim().equals("")) {
- sql += "p_id= ?";
- QueryRunner run = new QueryRunner(C3Utils.getDs());
- run.update(sql,id);
- System.err.println("删除成功");
- } else {
- System.err.println("删除出错");
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- package com.sdjt.frame;
- import java.awt.BorderLayout;
- import java.awt.Container;
- import java.awt.FlowLayout;
- import java.awt.Label;
- import javax.swing.JButton;
- import javax.swing.JComboBox;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
- import javax.swing.JTextField;
- import javax.swing.ListSelectionModel;
- import javax.swing.table.DefaultTableModel;
- import com.sdjt.person.Action.PersonAction;
- import com.sdjt.utils.MyModelFrame;
- public class Frame extends JFrame {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- Label lable1 = new Label("编号");
- Label lable2 = new Label("姓名");
- Label lable3 = new Label("年龄");
- Label lable4 = new Label("性别");
- JButton save = new JButton("保存");
- JButton delete = new JButton("删除");
- JTextField idtext = new JTextField(5);
- JTextField nametext = new JTextField(5);
- JTextField agetext = new JTextField(5);
- JTable table;
- DefaultTableModel dt;
- // 下拉框
- JComboBox<String> sextext = new JComboBox<String>(new String[] { "", "男",
- "女" });
- public Frame() {
- // 控制层 接受用户信息
- PersonAction pa = new PersonAction(this);
- // 获取当前jframe上的对象
- Container con = getContentPane();
- con.setLayout(new BorderLayout());
- JPanel jp = new JPanel(new FlowLayout(FlowLayout.LEFT));
- jp.add(lable1);
- jp.add(idtext);
- jp.add(lable2);
- jp.add(nametext);
- jp.add(lable3);
- jp.add(agetext);
- jp.add(lable4);
- jp.add(sextext);
- JButton query = new JButton("查询");
- query.setActionCommand("query");
- jp.add(query);
- query.addActionListener(pa);
- save.setActionCommand("save");
- jp.add(save);
- save.addActionListener(pa);
- delete.setActionCommand("delete");
- jp.add(delete);
- delete.addActionListener(pa);
- // 实例化表格数据+表头
- dt = new MyModelFrame(null, new String[] { "编号", "name", "age", "sex" });
- con.add(jp, BorderLayout.NORTH);
- table = new JTable(dt);
- // //设置单行选择
- table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- // 将t放在中间用JScrollPanel设置table可以带上下滚动条
- con.add(new JScrollPane(table), BorderLayout.CENTER);
- // 监听窗口关闭按钮
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setBounds(300, 300, 700, 300);
- setVisible(true);
- }
- public JTable getTable() {
- return table;
- }
- public JTextField getIdtext() {
- return idtext;
- }
- public JTextField getNametext() {
- return nametext;
- }
- public JTextField getAgetext() {
- return agetext;
- }
- public JComboBox<String> getSextext() {
- return sextext;
- }
- public static void main(String[] args) {
- new Frame();
- }
- public DefaultTableModel getDt() {
- return dt;
- }
- }
- package com.sdjt.person.Action;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.List;
- import javax.swing.JOptionPane;
- import com.sdjt.frame.Frame;
- import com.sdjt.person.serverce.PersonServer;
- public class PersonAction implements ActionListener {
- // 声明serverce
- private PersonServer service = new PersonServer();
- private Frame fr;
- public PersonAction(Frame fr) {
- this.fr = fr;
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- if (e.getActionCommand().equals("query")) {
- System.err.println("query..");
- // 删除原有的
- int rows = fr.getDt().getRowCount();
- for (int i = 0; i < rows; i++) {
- fr.getDt().removeRow(0);
- }
- // 查询
- String id = fr.getIdtext().getText();
- String name = fr.getNametext().getText();
- String age = fr.getAgetext().getText();
- String sex = fr.getSextext().getSelectedItem().toString();
- if (sex.equals("男")) {
- sex = "1";
- } else if (sex.equals("女")) {
- sex = "0";
- }
- Integer _age = age.equals("") ? null : Integer.valueOf(age);
- System.err.println(id + "," + name + "," + age + "," + sex);
- // 调用serverce
- // List<Object[]> list = service.query(id, name, _age, sex);
- List<Object[]> list = service.query(id, name, _age, sex);
- for (Object[] oo : list) {
- fr.getDt().addRow(oo);
- System.err.println("添加成功");
- }
- } else if (e.getActionCommand().equals("save")) {
- // 获取数据
- String id = fr.getIdtext().getText();
- String name = fr.getNametext().getText();
- String age = fr.getAgetext().getText();
- String sex = fr.getSextext().getSelectedItem().toString();
- if (id == null || id.trim().equals("")) {
- JOptionPane.showMessageDialog(fr, "必须输入编号");
- return;
- }
- if (sex == null || sex.trim().equals("")) {
- JOptionPane.showMessageDialog(fr, "必须输入性别");
- return;
- }
- // 调用保存
- service.save(id, name, age, sex);
- // 保存成功后
- fr.getDt().addRow(new String[] { id, name, age, sex });
- System.err.println("baocn");
- } else if (e.getActionCommand().equals("delete")) {
- // String id = fr.getIdtext().getText();
- String name = fr.getNametext().getText();
- String age = fr.getAgetext().getText();
- String sex = fr.getSextext().getSelectedItem().toString();
- int row = fr.getTable().getSelectedRow();
- if (row == -1) {
- JOptionPane.showMessageDialog(fr, "plz choose one row...");
- return;
- }
- String id1 = (String) fr.getDt().getValueAt(row, 0);
- int a = JOptionPane.showConfirmDialog(fr, "你确定要删除" + id1 + "吗?",
- "删除", JOptionPane.YES_NO_OPTION);
- service.delete(id1, name, age, sex);
- fr.getDt().addRow(new String[] { id1, "已经被删除" });
- // System.err.println("--" + a);
- // Integer _age = age.equals("") ? null : Integer.valueOf(age);
- // List<Object[]> list = service.query(id1, name, _age, sex);
- // for (Object[] oo : list) {
- // fr.getDt().addRow(oo);
- // System.err.println("添加成功");
- //
- // }
- }
- }
- }
- package com.sdjt.person.serverce;
- import java.util.List;
- import com.sdjt.dao.PersonDaoJdb;
- public class PersonServer {
- // 声明dao 注入dao
- private PersonDaoJdb dao = new PersonDaoJdb();
- public List<Object[]> query(String id, String name, Integer age, String sex) {
- return dao.query(id, name, age, sex);
- }
- public void save(String id, String name, String age, String sex) {
- sex = sex.equals("男") ? "1" : "0";
- dao.save(id, name, age, sex);
- }
- public void delete(String id, String name,String age, String sex) {
- dao.delete(id, name, age, sex);
- }
- }
- package com.sdjt.utils;
- import java.sql.Connection;
- import javax.sql.DataSource;
- import com.mchange.v2.c3p0.ComboPooledDataSource;
- public class C3Utils {
- private static DataSource ds;
- static{
- ds=new ComboPooledDataSource();
- }
- public static DataSource getDs() {
- return ds;
- }
- public static Connection getCon() {
- Connection con = null;
- try {
- con = ds.getConnection();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return con;
- }
- // public static void main(String[] args) {
- // System.err.println(C3Utils.getCon());
- // }
- }
- package com.sdjt.utils;
- import javax.swing.table.DefaultTableModel;
- /**
- * 表格模版
- *
- * @author lx
- *
- */
- public class MyModelFrame extends DefaultTableModel {
- public MyModelFrame(Object[][] data, Object[] header) {
- super(data, header);
- }
- //返回false不能修改数据
- @Override
- public boolean isCellEditable(int row, int column) {
- if(row==2){
- return true;
- }
- return false;
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <c3p0-config>
- <default-config>
- <!-- 最多可以创建多少个statement -->
- <!-- 最多可以创建多少个statement -->
- <property name="maxStatements">50</property>
- <!-- 最多有多少个连接 -->
- <property name="maxPoolSize">4</property>
- <property name="initialPoolSize">2</property>
- <property name="acquireIncrement">2</property>
- <property name="minPoolSize">2</property>
- <!-- 连接的超时间 -->
- <property name="checkoutTimeout">3000</property>
- <property name="driverClass">com.mysql.jdbc.Driver</property>
- <property name="jdbcUrl">jdbc:mysql:///abc
- </property>
- <property name="user">root</property>
- <property name="password">1234</property>
- </default-config>
- <!-- 配置其他的连接,用户的其他配置可以有多个 -->
- <named-config name="jtedu">
- <property name="maxStatements">50</property>
- <!-- 最多有多少个连接 -->
- <property name="maxPoolSize">4</property>
- <property name="initialPoolSize">2</property>
- <property name="acquireIncrement">2</property>
- <property name="minPoolSize">2</property>
- <!-- 连接的超时间 -->
- <property name="checkoutTimeout">3000</property>
- <property name="driverClass">com.mysql.jdbc.Driver</property>
- <property name="jdbcUrl">jdbc:mysql:///abc
- </property>
- <property name="user">root</property>
- <property name="password">1234</property>
- </named-config>
- </c3p0-config>
我的第一个MVC项目的更多相关文章
- 1.开始第一个MVC项目
安装就不说了 1.在指定路径创建好项目文件夹之后,打开cmd,进去这个文件夹路径下 输入命令 dotnet new mvc 就会在文件夹内创建一个mvc项目 2.创建好项目之后 直接在这个路径下输入 ...
- .net core 第一个mvc项目目录结构简析
创建项目的命令 首先来认识一下创建项目可使用的各种命令,.NETCore 的命令都以 dotnet 打头,这很好理解,输入 dotnet xxx,就是执行环境变量指向的 C:\Program ...
- ASP.NET + MVC5 入门完整教程三 (上) ---第一个MVC项目
https://blog.csdn.net/qq_21419015/article/details/80420815 第一个MVC应用程序 1创建MVC项目 打开VS ,File--新建--项目,选择 ...
- 《ASP.NET MVC 5 破境之道》:第一境 ASP.Net MVC5项目初探 — 第一节:运行第一个MVC5项目
第一境 ASP.Net MVC5项目初探 — 第一节:运行第一个MVC5项目 创建一个MVC项目,是很容易的,大部分工作,VS都帮我们完成了.只需要按照如下步骤按部就班就可以了. 打开VS2017,选 ...
- 创建一个MVC解决方案,添加一个控制器后,运行程序报错:”/"未找到服务器
1.创建一个MVC项目,如图
- .NET MVC项目设置包含Areas中的页面为默认启动页
利用vs创建一个MVC项目后,一般的默认启动页是根目录下-->Controllers-->HomeController-->Index这个方法对应的页面. 我先说下创建Areas的流 ...
- Pro ASP.NET MVC –第二章 第一个MVC程序
学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
C#编译器优化那点事 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码 ...
- WSL2 新建dotnet core mvc项目
我们知道dotnet sdk会有很多命令,但在我们完全不知道如何去使用哪个命令. 我们使用dotnet -h进行查看: 我们看到SDK的new命令,但是new命令又如何使用呢? 我们再次使用帮助: 可 ...
随机推荐
- WIN7下使用.net(C#)监视剪贴板 (转)
最近需要做一个小程序,需要常驻后台,监视剪贴板变化并提取内容, 在网上查了一些资料,先采用SetClipboardViewer方法实现,具体原理可以参考http://www.cnblogs.com/j ...
- window.dialogArguments的使用
<HTML> <HEAD> <TITLE>showModelessDialogEX.htm</TITLE> <SCRIPT> var sUs ...
- Bootstrap 字形图标(Glyphicons)
http://w3c.3306.biz/bootstrap/eg/bootstrap--glyphicons-list.html
- android如何保存读取读取文件文件保存到SDcard
android如何保存读取读取文件文件保存到SDcard 本文来源于www.ifyao.com禁止转载!www.ifyao.com 上图为保存文件的方法体. 上图为如何调用方法体保存数据. 上面的截图 ...
- 【Nutch2.2.1源代码分析之5】索引的基本流程
一.各个主要类之间的关系 SolrIndexerJob extends IndexerJob 1.IndexerJob:主要完成 2.SolrIndexerJob:主要完成 3.IndexUtil:主 ...
- HTML5视频
<video>标签用于定义视频. 案例1: <!DOCTYPE html><html><head lang="en"> <me ...
- HTML5简介、视频
HTML5 建立的一些规则: 新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独 ...
- Lua 字符串函数小结
1.求字符串长度 string.len(str) 2.大小写转换 string.upper(str) string.lower(str) 3.字符串查找(非全局) --func_string.lua ...
- Python爬虫学习:一、相关概念与基础知识
爬虫: 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽 ...
- 使用 Mockito 单元测试 – 教程
tanyuanji@126.com 版本历史 - - - - 使用 Mockito 进行测试 该教程主要讲解 Mockito 框架在Eclipse IDE 中的使用 目录 tanyuanji@12 ...